Install Handler Data
Applies To: Windows Server Update Services
The Windows Update agent has an install handler for each type of installer that it supports (MSI, MSP, command line, or driver). Install handler data, which appears under the InstallableItem.InstallHandlerSpecificData element in SoftwareDistributionPackage element, can also be set from the authoring API. Each handler needs different information and has a separate schema.
MsiInstallation.xsd is used for Windows Installer packages. The agent uses the Windows Installer APIs directly for this kind of installation, so it can force suppression of user input without explicit parameters. The method PopulatePackageFromWindowsInstaller will initialize the installer data for a Windows Installer package.
MspInstallation.xsd is used for a Windows Installer patch (MSP) package. The agent uses the Windows Installer APIs directly for this install, so it can force suppression of user input without explicit parameters. The method PopulatePackageFromWindowsInstallerPatch will initialize the installer data for a Windows Installer.
CommandLineInstallation.xsd is used for command-line executable packages. The basic parameters are the relative path to the executable (it must be a relative path, since the install handler supports launching an executable only as part of the published package that is downloaded to the client), command line parameters (care must be taken to ensure the right flags are set to support a silent install), and how to interpret the return value (to indicate if the install failed, was successful, or was successful but a reboot is needed to complete the install). The method PopulatePackageFromExe will initialize the installer data for a command-line executable.
Note
Executable packages do not support uninstallation. Only Windows Installer and MSP packages can be uninstalled.
Detectoids and bundles do not have install handler-specific data because they are not directly associated with update binaries.
Drivers can have either a command line installer or none at all. If they have no installer, the update binary must be a native driver (inf + binaries) that the agent can install directly using the PnP APIs.
Example
The following are examples of different kinds of install handler data.
Command line handler specific data
<cmd:CommandLineInstallerData Program="sample.exe" Arguments="/q">
<cmd:ReturnCode Code="0" Result="Succeeded" />
</cmd:CommandLineInstallerData>
Windows Installer data
<msi:MsiInstallerData MsiFile='sample.msi' ProductCode="{10867FC2-98D9-475F-8099-F14A75180E42}" CommandLine="VAR1=val1 VAR2=val2" />
MSP installer data
<msp:MspInstallerData PatchCode="{10867FC2-98D9-475F-8099-F14A75180E42}" CommandLine="VAR1=val1 VAR2=val2" />