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.

masegaloeh
  • 17,978
  • 9
  • 56
  • 104
David Steven
  • 157
  • 2
  • 9

5 Answers5

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

grub
  • 1,118
  • 1
  • 7
  • 11
  • 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 06 '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 06 '09 at 16:33
  • Hi. if you really have to run it with local administrator rights you could purchase Encrypted Runas (http://www.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 06 '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 07 '09 at 05: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 :-).

sleske
  • 9,851
  • 4
  • 33
  • 44
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.
shufler
  • 962
  • 1
  • 6
  • 18
  • 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 07 '09 at 05:46
  • On the workstation: start.exe \\server\path\file.bat – shufler Aug 07 '09 at 13:09
  • or if the batch file is local, run the application: \\server\path\app.exe -parameters. – shufler Aug 07 '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 00: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
  • This sounds like a task that could be handled by psexec (you could use a service account that is limited to only running this application if you do not want to expose important passwords) or create a web service which the users can call and will process locally on the server (stackoverflow question). – shufler Aug 10 '09 at 14:28
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.

Regent
  • 518
  • 1
  • 7
  • 10
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.

romandas
  • 3,242
  • 8
  • 37
  • 44
  • 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 07 '09 at 05:45