Packages with user parts

If a package contains commands classified for user execution, this user part needs to run for each user who logs on to the computer. Since the PPB generates packages independent of the distribution system, we cannot rely on the functionality of the DSM Agent, for example, here.

Therefore, by default, the packages are using a mechanism called "Active Setup" that is available natively in Windows. This mechanism ensures that a configurable command executes for each user who logs on to the system after the corresponding registry entries have been created. When such a package runs, a command line is therefore stored that only installs the user part of such a package for subsequent user logons (see Background information installation modes).

Note: To create the Active Setup registry entries, the package must be set to contain user parts. To do this, you must set the value of the HasUserPart property to "1" in the "Package.xml" package properties file located in the package directory. Since most packages do not require a user part, the default value for this property in the supplied templates is "0".


For each package with user parts, a subkey with the package GUID as its name (see package properties) is created below the Active Setup base key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components". Four values are then created in this key:

  • The default value contains the name of the package (as specified during creation and stored in the package properties file)
  • The DWord-value "IsInstalled" is set to 1
  • The string value "StubPath" contains the call to "Deploy-Application.exe" from the package directory with the command line parameter "-InstallMode InstallUserPart"
  • The string value "Version" is set to the version number of the package, as stored in the package properties file (in the form of a four-digit version number separated by commas)