Running desktop software as a "service"

We've got a Windows Server Standard 2008 server that needs to run QuickBooks Sync Manager, which is an application that only works properly from one user account (the account that configured it). The QuickBooks Sync Manager will only run if the user is currently logged in.

The problem is that we only use this server as a file server, no one ever has any reason to log in to it.

Is there some way to get this application to run under a specific user without that user actually having to log in?

Alternatively, is there any way to schedule a task to automatically log in a specific user?


Go get Firedaemon (won't post the link, but it's a well known tool, just google it).

Set up your application to run as a new Firedaemon service (which will create a Windows service) and set it as interactive with the desktop and to run as that particular user.

When you or another admin logs on via RDP you can view what is going on but opening Firedaemon and right clicking that service and choosing to view Session 0. That will show you that "desktop" and the Quickbooks app.

Hope that helps.


If this is an interactive application, Autologon may work:

http://technet.microsoft.com/en-us/sysinternals/bb963905.aspx

Autologon enables you to easily configure Windows’ built-in autologon mechanism. Instead of waiting for a user to enter their name and password, Windows uses the credentials you enter with Autologon, which are encrypted in the Registry, to log on the specified user automatically.

Autologon is easy enough to use. Just run autologon.exe, fill in the dialog, and hit Enable. To turn off auto-logon, hit Disable. Also, if the shift key is held down before the system performs an autologon, the autologon will be disabled for that logon. You can also pass the username, domain and password as command-line arguments: autologon user domain password.


I know this is an old question, but I came here looking for an answer, so I'll say what I used. SRVSTART worked great, I created an ini file saying what to start and what directory to start the program in, and then used the SRVSTART exe to create the service. Then used SC to set a description. Then used the Services UI to set the logon ID to use for the service. SRVStart can be setup to watch your program and restart it if it stops running. So far it is working great. Here is a link to the author's page, you can download it. If you get the source code, it is old, written for Visual C++ 6.0. Or you can get the exe and required dlls there.
http://www.rozanski.org.uk/software

Here is my sample INI file (in C:\SpecialService folder for this example) SpecialService.ini:

[SpecialService]
startup=C:\SpecialService\SpecialProgram.exe
startup_dir=C:\SpecialService
shutdown_method=kill
auto_restart=y
restart_interval=60

Then here is the command to create the service:

srvstart install SpecialService -c C:\SpecialService\SpecialService.ini

Finally here is the command to set the description of the service:

SC description SpecialService "Put your description here in quotes... "