Installing from a terminal server

[This documentation is preliminary and is subject to change.]

Developers should keep the following in mind when performing Windows Installer installations from a terminal server:

  • Administrators and non-administrators can install from the console session.
  • Non-administrators cannot install from a client session. Non-administrators can only install from the console session.
  • On operating systems earlier than Windows Server 2008 and Windows Vista, administrators can install from a client session of a terminal server only if the EnableAdminTSRemote system policy has been set. Beginning with Windows Server 2008 and Windows Vista, the EnableAdminTSRemote policy no longer has any effect. Regardless of its setting, administrators and non-administrators can perform an installation from a client session or from the console session.
  • When an administrator installs from a client session that is hosted on Windows 2000, the installation must use a UNC path and not a mapped drive letter. This restriction only exists for client sessions hosted on Windows 2000.
  • Windows Installer can perform per-machine installations without using install mode. It is unnecessary to place the computer into install mode to perform a per-machine installation. Windows Installer does not automatically place the computer in install mode, regardless of the type of installation. For more information about per-machine installations see the ALLUSERS property.
  • When installing software for an individual user, placing the computer into install mode may incorrectly copy the application's shortcuts or data to the profiles of other users, even if the application is not installed for these users. It is recommended that applications installed per-user be installed with the computer in the execute mode.
  • The Windows Installer prevents per-user installation from a terminal server if the DisableUserInstallssystem policy is set to 1. In this case, the installer ignores all applications registered as per-user and only searches for applications registered as per-machine. Calls to the installer application programming interface or system ignore per-user applications.

The following guidelines are recommended when developing components for Windows Installer installations that may be run on a terminal server:

  • Do not install any per-user registry information at setup time. Instead, generate the registry information when the application is first run. Alternatively, use default values and only write per-user registry information when it differs from the default value.
  • If you must write per-user information to the registry during setup, separate the per-user and per-machine data into different installer components. Author the package such that the installer does not verify and attempt to repair the per-user components when the application is activated. A server might be configured such that users cannot repair applications. Your application should handle the case of missing registry keys gracefully.
  • Write all HKCU registry information under the HKCU\Software hive.
  • Storing configuration information in INI files is not recommended.
  • A package used for only per-machine installations should write environment variables to the computer's environment by including * in the Name column of the Environment Table. If the package can be used for per-user installations or per-machine installations, create two components: (1) a per-user component with the Environment Table entries authored for user settings, and (2) a per-machine component with the Environment Table authored for computer settings. Create a condition for the installation of this component using the ALLUSERS property. When performing per-machine installations from a terminal server, the installer writes per-user environment variables to HKU\.Default\Environment. Because the terminal server does not replicate this section of the registry, the installation does not set the per-user environment variables.
  • Do not save user information, such as the user name or the path to user files, in the HKCU registry hive or INI files. The terminal server copies this information and makes them the default for all future users.

For more information, see Terminal Services in the Microsoft Windows Software Development Kit (SDK).

See Also

EnableAdminTSRemote

TerminalServer property

RemoteAdminTS property

Terminal Services

Send comments about this topic to Microsoft

Build date: 3/9/2009