Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

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.

EDIT: Both systems are Windows.

share|improve this question

5 Answers 5

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

share|improve this answer
    
I've used psexec before, but I don't want to expose the password the the account that would need to run the command. –  David Steven Aug 6 '09 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 '09 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 '09 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). –  David Steven Aug 7 '09 at 5:44

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 :-).

share|improve this answer

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.
share|improve this answer
    
All these steps aside, how is the execution of the batch file (and the program) on server X triggered from user on workstation Y? –  David Steven Aug 7 '09 at 5:46
    
On the workstation: start.exe \\server\path\file.bat –  shufler Aug 7 '09 at 13:09
    
or if the batch file is local, run the application: \\server\path\app.exe -parameters. –  shufler Aug 7 '09 at 13:14
    
this will execute the interactive program on the server? Won't it just try to run in on the calling machine? –  David Steven Aug 10 '09 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 '09 at 14:27

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.

share|improve this answer

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.

share|improve this answer
    
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. –  David Steven Aug 7 '09 at 5:45

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.