0

We have a batch reporting software (Visual Cut) that can be used to generate a report on demand to a PDF file. It runs on a single server.

I don't want to have to install the software on every person's computer than might need to generate the PDF because the individual report configuration options would have to be set up on each machine separately. I change these options periodically multiplied by the number of machines would get annoying quickly.

The software can be triggered from a simple command line.

How can a user on their machine start this command line process on the server?

It not something that needs to be run on a schedule, it's ad-hoc as needed. Final note: both systems are Windows.

5 Answers 5

1

Are you talking abozt a windows server and widnows workstations? Maybe you can use psexec from sysinternals: http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx

you can exetue a command on the remote server

psexec -u domain\user -p pass \\server command

4
  • I've used psexec before, but I don't want to expose the password the the account that would need to run the command. Aug 6, 2009 at 16:25
  • Not sure I understand your setup -- why would the user need a different account to launch the app via psexec? I don't recall (but admittedly haven't tested recently) that psexec requires an administrator account; it might just need some rights added like 'logon from the network' or somesuch.
    – romandas
    Aug 6, 2009 at 16:33
  • Hi. if you really have to run it with local administrator rights you could purchase Encrypted Runas (wingnutsoftware.com/index.asp). But I'm not sure if the tool fits your needs. I think the better solution is to add a domain user with the permissions to generate the report and nothing more. Then you can expose the password of the account without creating a security risk.
    – grub
    Aug 6, 2009 at 16:41
  • The program needs to run interactively on the server. The configuration of the program is done at the user level . Any number of users could run it so I don't want to setup the configuration for every user (same configuration for each, just a lot of configuring to do each time it changes). Aug 7, 2009 at 5:44
1

The psexec answer from grub seems like a good choice for a quick&dirty solution. You can probably push it to desktops as a batch script.

You could also consider wrapping the command into a simple CGI webapp. Basically a page with a single form & a few buttons which accepts parameters (if needed) an launches your exe. People love webapps :-).

1

Steps:

  1. In Active Directory create a domain local group "Application Group"
  2. In Active Directory create a global group "Application Users" add the Application Users global group as a member to the Application Group domain local group.
  3. In Active Directory, add as members the users who need access to this application to "Application Users"
  4. On the server give read and execute NTFS permissions (at a minimum) on application folder to "Application Group" domain local group. Give write permissions to PDF output folder.
  5. On the server, create a share on the application folder. Removed Everyone share permissions and add read/write (write if PDF output folder is within the same hierarchy) permissions for "Application Group"
  6. Create or modify existing batch file to call application with desired command line options (ensure UNC paths are OK, or map drives as necessary).
  7. Test with a user in Application Users (who is not an administrator on the server)
  8. Communicate access methods to end-users.
6
  • All these steps aside, how is the execution of the batch file (and the program) on server X triggered from user on workstation Y? Aug 7, 2009 at 5:46
  • On the workstation: start.exe \\server\path\file.bat
    – shufler
    Aug 7, 2009 at 13:09
  • or if the batch file is local, run the application: \\server\path\app.exe -parameters.
    – shufler
    Aug 7, 2009 at 13:14
  • this will execute the interactive program on the server? Won't it just try to run in on the calling machine? Aug 10, 2009 at 0:03
  • Ahhh. Sorry, now I understand. You are correct, it will run on the workstation and not interactively on the server. The steps I have suggested will securely allow only the users you have specified to run the application that resides on the server on workstations, and will not do what you have asked, which is for the user to instruct the server to run the application.
    – shufler
    Aug 10, 2009 at 14:27
0

If users just need the most recent report without any additional input parameters I would just create ASP.NET application (similar as sleske suggested) but so it to be just single URL user can click and see PDF report opened within the browser.

0

You may want to consider setting up Terminal Services and allowing the limited users to Remote Desktop into the server where the application is installed to run it "locally" on the server. That's what I've done in the past for applications that I only have a few licenses for -- instead of trying to get licenses to push the app out to every workstation.

Otherwise, the psexec option is likely your best bet.

1
  • Yeah, and I've done that before with programs requiring a lot of interaction, however this one is literally press a button and let it do it's thing. Still needs to run "interactively". Remote Desktop/Terminal Services is a lot of overhead to press a button. Aug 7, 2009 at 5:45

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .