Summary software distribution

IntelliMirror's software distribution is based on Windows 2000 group policies and gives the ability to manage software installations on Windows 2000 clients. (or newer) It can be used to install, update and remove software on specific computers or for specific users.

Windows installer service

The Windows installer service is responsible for installing, maintaining or removing the applications on the clients. It exists of three components :

bulletAn operating system service to install, maintain or remove the applications.
bulletWindows Install Package files (.msi) that contain all the information about the application. (programs, registry settings, etc.)
bulletAn api that interfaces with the operating system.

The installer services monitors the state of an application and is able to repair it if problems do occur. The executable used by the Windows installer service is msiexec.exe.

bullet Overview of the Windows installer technology in Windows 2000 (Q242479)
bullet Overview of the Windows installer technology in Windows XP/.Net server (Q310598)

Installer packages

There are three types of installer packages :

bulletNative Windows installer packages. These packages where designed to be used as .msi file. They support on-demand installation (only parts of the application can be installed) and are self-repairing. A user does not need administrative privileges to install the application.
bulletRepackaged Windows installer packages. These packages provide the same functionality as native Windows installer packages but cannot be used to install a part of the application. The repackaged .msi files can be created with WInstall which is available on the Windows 2000 cd or with other 3th party tools.  (valueadd\3rdpary\Mgmt\Winstle\Swiadmle.msi)

HOW TO: Create third-party Microsoft installer package (MSI) (Q257718)
 
bulletExisting setup programs. If it is not possible to get or create an msi-file, setup.exe or install.exe can be stored into a .zap file. This is a text file that only can be used to publish applications. It does not support the Windows installer functions so a user needs enough rights to install the application.

HOW TO: Publish non-MSI programs with .zap files (Q231747) -> For additional options (e.g URL, LCID, extensions, CLSID) in ZAP files see Windows 2000 resource kit chapter 23 'Software installation and maintenance'.

Windows installer packages can be customized, e.g. to remove part of the application, by transforms. A transform is a specialized Windows installer package (.mst) that is associated with a .msi file.

An software patch is distributed as a .msp file that is associated with the original .msi file.

Software distribution point

After the installer packages are available, you need to create a software distribution point. This is a share that contains the installer packages and the associated programs. Normally users will only have read permissions on this share. DFS shares can be used to create fault-tolerance and to spread the load.

bullet DFS and software distribution interaction (Q285827)

Targeting software

Via the group policy snap-in for a site, domain or ou, you can create a group policy to assign or publish applications. First open the group policy windows and select Computer Configuration - Software settings - Software installation (assign applications to computers) or User Configuration - Software settings - Software installation (assign or publish applications to users). On the properties you can set the following items :

bulletGeneral tab
bulletDefault package location. The software distribution point share.
bulletWhen adding new package to user settings. Display the Deploy software dialog box, assign, publish (user only) advanced publish or assign. Sets which action occurs when a new package is created.
bulletInstallation user interface options.
bulletUninstall the applications when they fall out of the scope of management. (not available on .NET server)
bulletAdvanced tab (.NET server only)
Uninstall the application when they fall out of the scope of the management.
Include OLE information when deploying applications.
Make 32-bit X86 Windows installer packages available to Win64 machines.
Make 32-bit X86 down-level (ZAP) applications available to Win64 machines.
bulletFile extensions tab
Associate files with a specific application. When no application is installed or assigned for a specific file extension, the application with the highest ranking in the file extension tab is installed.
bulletCategories tab
Create categories in the Add/Remove tab to create a better overview of the published applications. These categories are available per domain, not per group policy object.

On a package you can modify the following settings :

bulletGeneral tab
bulletName. Name of the application. Tabs shows also application information.
bulletDeployment tab
bulletDeployment type. Published (users only) or assigned.
bulletDeployment options.
bulletAuto-install this application by file extension activation. Will install a publish application when an associated file is opened.
bulletUninstall this application when it falls out of the scope of management. The application will be uninstalled if the group policy object no longer applies to the user or computer.
bulletDo not display this package in the Add/Remove Programs control panel. Application is not available via Add/Remove programs but is only installed via the shortcut (assigned applications) or when an associated file is opened.
bulletInstall this application at logon. (.NET server only)
bulletInstallation user interface options. Basic or maximum. Basic shows only error messages (default setting). Maximum shows more information.
bulletAdvanced button.
bulletIgnore language when deploying this package.
bulletRemove previous installs of the product from computers, if the product was not install by Group policy-based software installations.
bulletSelect if package must be available for 64-bit systems. (.NET server only)
bulletInclude OLE class and product information. (.NET server only)
bulletThe tab shows advanced diagnostic information about the product code, deployment id and script name.
bulletUpgrades tab
bulletPackages that this package will upgrade.
bulletPackages in the current GPO that will upgrade this package.
bulletCategories tab
bulletThe categories in which the programs will be shows in Add/Remove programs.
bulletModifications tab
bulletModifications or transforms that are used to customize the package.
bulletSecurity tab
bulletUsers or groups to which the group policy (=application) will be available.

The security on the group policies can be used to determine which user or machine will get the application(s) published or assigned.

Applications assigned to users will be available the next time when the user logs on. It will be installed when the user activates the application by selecting the icon or by using a file-association. The user can remove the assigned application.
Applications assigned to computers will be installed the next time the computer starts. Only users with administrative permissions can remove the application.
Applications that are published to users are only available via the Add/Remove option in the control panel. The user can remove the application if wanted.

Windows installer options can be customized with group policies. (administrative templates\Windows components\Windows installer) One of the options is the logging during the installation of .msi files in msi.log.

bullet HOW TO: Use group policy to remotely install software in Windows 2000 (Q314934)
bullet HOW TO: Assign software to a specific group by using a group policy (Q302430)
bullet Best practices for using Update.msi to deploy service packs (Q278503)
bullet How to enable Windows installer logging in Windows 2000 (Q223300)
bullet How to enable Windows installer logging in Windows XP (Q314852)
bullet HOW TO: Patch a software installation stored on a network server that is deployed using Microsoft software installer (Q226936)
bullet Command-line switches for the Microsoft Windows installer tool in Windows 2000 (Q227091)
bullet Command-line switches for the Microsoft Windows installer tool in Windows XP (Q314881)
bullet Assigning a Windows installer package with minimal interaction (Q224330)
bullet Windows Installer: Benefits and implementation for system administrators (Microsoft)
bullet How to create third-party Microsoft installer package (MSI) (Q257718)
bullet Working with transforms for assigned or published programs in Active Directory (Q236943)
bullet INFO: Disadvantages of repackaging applications (Q264478)
bulletA readers problem with MSI installs (Swynk)
bullet Nested MSI package does not work and generates an error message (Q310737)

Sysdiff

Sysdiff is resource kit utility used to take a snapshot of a computer before an installation takes place. Then something is installed and another snapshot is taken. The differences in the files and registry are noted and copied and a package is available. To take the first snapshot run SYSDIFF /snap /log:logfile snap_file. Then install the program and run SYSDIFF /diff /log:logfile /c:"comment" snap_file diff_file. This will create the difference file. You can add a difference file to a distribution server or ran it individual on another machine. To run it on another machine use SYSDIFF /apply /m /q diff_file. /m will create the icons for a default user, /q will ignore error messages during the installation. Use sysdiff /inf /m dif_file oem_root to copy the inf file and the changes to a distribution/installation directory. Use to [GuiRunOnce] section in the answer-file to apply the application. You can use sysdiff /dump to export the file to a readable format.

Keep in mind that the systemdirectory (incl. driveletters) must be the same as on the machine where the snapshot was taken. Also a hotfix is available for Sysdiff on Windows 2000.

You can change sysdiff.inf to change the directories and registry-entries that are monitored for changed.

bulletSysdiff, Windows 2000 secret software deployment tool (Swynk)
bulletTechnet: Automating Windows NT setup deployment guide supplement (Sysdiff)
bullet Sysdiff.exe deployment tool is not included in Windows XP (Q298389)

Microsoft software inventory analyzer

The Microsoft software inventory analyzer can be used to check which Microsoft software is installed on local and remote systems.

Appsec

The resourcekit utility Appsec can be used to restrict access to applications.

bullet Using the Application Compatibility toolkit
bullet HOW TO: Use appsec to restrict access to programs (Q320181)
bullet Appsec tool in Windows 2000 resource kit is missing files (Q257980)

Links :

bullet Using software restriction policies to protect against unauthorized software

Last update : 12 January 2003