Running Engines on Windows From a Non-Local System Account

Running Engines on Windows From a Non-Local System Account

book

Article ID: KB0086078

calendar_today

Updated On:

Products Versions
TIBCO DataSynapse GridServer -
Not Applicable -

Description

Resolution:
Windows GridServer Engines typically run as a service, using the Local System account to monitor local keyboard and UI activity and determine when a computer is idle. However, your installation environment may make it impossible to install Engines using the Local System account, and installation of an Engine as a service using another account would prevent it from monitoring system activity. To install an Engine in this situation, you can install the included program DSHook.exe as a service, using the Local System account. DSHook only counts local keyboard and UI activity, so it is not considered to be a security risk. Engines are installed under another username, and simply communicate with DSHook to monitor the system.

The following instructions describe how to install DSHook as a service by hand, using the Registry Editor and the instsrv.exe program included in the Windows Resource Kit. You can also use other programs to install the service automatically and script the editing of the registry.

Note that you will need the instsrv program, which is included with the Windows NT/2000/XP Resource Kit for the installation.

To install DSHook:

   1. Log onto the machine as a user with administrative privileges.
   2. Open a command prompt and change to the Engine directory, typically
      C:\Program Files\DataSynapse\Engine.
   3. Type:
      instsrv DSHook C:\Program Files\DataSynapse\Engine\srvany.exe
   4. You can replace DSHook with another name for the service, if desired. Replace the path to srvany.exe if your Engine is installed in a different directory.
   5. Type regedit to open the Registry Editor.
   6. Locate the following key:
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DSHook
   7. From the Edit menu, select New, select Key, and name the new key Parameters.
   8. Highlight the Parameters key.
   9. From the Edit menu, select New, select String Value, and name the new value Application.
  10. From the Edit menu, select Modify, and type in the path name for the Engine directory, including the drive letter, plus the name DSHook.exe. Enclose the full path in quotation marks.
  11. From the Edit menu, select New, select String Value, and name the new value AppDirectory.
  12. From the Edit menu, select Modify, and type in the path name for the Engine directory, including the drive letter. Don't enclose the path in quotation marks.
  13. Close the Registry Editor.
  14. Ensure that the file workerhook.dll is in the Engine directory with srvany.exe. The workerhook.dll file must have read/write/execute permissions for all domain users. If your policies therefore require you to move workerhook.dll into a shared system area, such as C:\WINNT\SYSTEM32, you must ensure that only one copy of workerhook.dll exists (removing it from C:\PROGRAM FILES\DATASYNAPSE\ENGINE if necessary).
  15. From the Start menu, open Control Panels, then Administrative Tools, then Services.
  16. Right-click the DSHook service, select Properties, then select the Log On tab. Ensure the service is using the Local System account, and that Allow service to interact with desktop is selected.
  17. Right-click the DSHook service and select Start to start the service.

After installing DSHook, you can then install Engines that log in with any other user account. Note that Engines will require read access to Windows and System32 directories, and must also have read access to the registry.

You can also install DSHook on an existing Engine. After installation, ensure that the Engine's Service is updated properly so that the Engine has no Desktop access.

Issue/Introduction

Running Engines on Windows From a Non-Local System Account