AUTOMATICALLY DISTRIBUTE AND INSTALL APPLICATIONS

MICROSOFT SYSTEMS MANAGEMENT SERVER (SMS) Installer helps systems administrators automate application distribution. You can use this SMS program to consistently and efficiently deploy software packages to your users without having to install the software on each computer manually. (For information about SMS, see "Related Articles in Windows NT Magazine," page 62.)

SMS Installer works the same way NT's Sysdiff works. First, SMS Installer takes a snapshot of the system. Then, it installs the software. Finally, it takes another snapshot and searches for differences between the two snapshots' directories and Registries. In SMS Installer's Installation Expert mode, SMS Installer compiles the differences into an executable (.exe) file, and you build an SMS job that applies the file to target systems. The Installation Expert mode is a graphical interface that lets you set up the package via a series of dialog boxes. SMS Installer's other mode is the Script Editor, which lets you build complete scripts or edit the scripts that SMS Installer builds. You must learn a new scripting language and spend time writing, testing, and debugging scripts to use this mode. Therefore, I don't recommend the Script Editor for everyday use. In situations in which SMS Installer isn't powerful enough, you need to purchase a third-party product such as Seagate Software's WinINSTALL 6.0. (For information about WinINSTALL, see Stephen Garwood's sidebar "WinINSTALL 6.0," page 60.) However, SMS Installer comes free with SMS, and the tool will probably suffice for your application-distribution needs.

Benefits
SMS distributes software packages to client computers, but users must install the software themselves. (Some applications, such as Microsoft Office and Microsoft Outlook, have silent installation options or let you create silent installation routines. You'll want to use these options if they're available.) Letting users install software creates problems if users lack the experience necessary to perform the installation correctly or if you want all users to configure their software the same way. For example, users who install Microsoft Excel might not choose essential spreadsheet conversion options. Then, when they receive a Lotus 1-2-3 file that their Excel configuration can't convert, they call the Help desk for information about converting the file.

SMS Installer prevents this kind of problem. The systems administrator goes through the software's installation and selects all the options the administrator wants user configurations to include. Then, users receive a duplicate of the software configuration the systems administrator installed. Users don't take part in the installation process and thus can't make installation errors. (For an SMS Installer case study, see Christa Anderson, "NT Innovators 1999," January 1999.)

Another benefit of SMS Installer is that the program lets you easily and consistently distribute software to many users in a large organization. Moreover, you can distribute several software packages concurrently. You can take a system snapshot, run several installation programs, and take the second snapshot. SMS Installer then applies all your changes at one time.

Installation
Microsoft released SMS Installer as an add-on to SMS 1.2. You can download SMS Installer for SMS 1.2 at http://backoffice.microsoft.com/backoffice/downtrial/moreinfo/smsinst.asp. The download file prevents you from using SMS Installer without SMS; the self-extracting .exe file extracts only on SMS Site Servers. If you have a copy of the SMS 1.2 CD-ROM but not a fully installed Site Server, the file won't extract. After the file extracts, you can install SMS Installer on your reference systems.

SMS 2.0 beta 2 includes a slightly updated version of SMS Installer. (For information about these updates, see the sidebar "SMS Installer Updates for SMS 2.0.") SMS Installer for SMS 2.0 is on the SMS 2.0 beta 2 CD-ROM, in the \SMSSetup\SMS_Inst\platformdir directory, where platformdir is i386 or ALPHA. When you select the SMS Installer setup option, the program replicates to a directory under the SMS directory on your Site Server. (The directory on my SMS computer is D:\SMS\SMS_Inst\I386.)

You typically set up SMS Installer on one or more reference systems that closely resemble your target clients' OS and hardware configuration. SMS Installer can generate an .exe file that you can use to install the software on NT, Windows 98, or Win95 systems. However, I recommend using a reference system with the same OS as your target computers, even if you need to repeat the process for each OS. SMS Installer can also determine the directory your OS is in. Thus, the program works even if your reference computer uses \Winnt but some of your target computers use \Winnt4 and others use \Winntsrv.

SMS Installer's installation process doesn't offer many choices, but you must specify whether to install the 16- or 32-bit program support (or both). The 16-bit version works on NT, Win98, Win95, and Windows 3.1. The 32-bit version works on NT, Win98, and Win95. Either program can generate installation files that work on 16- and 32-bit platforms. If you choose both options, the setup program puts an icon for each option in your Program Files folder.

To prevent problems, you need to use reference systems that don't have other applications installed. Suppose you've already installed Excel on a system, and you use SMS Installer to install Microsoft Word. The system's hard disk contains certain .dlls that SMS Installer doesn't show as part of the Word installation. If you install Word on a clean reference system, SMS Installer adds the .dlls during the installation process and lists them as a change.

Don't uninstall software to return the reference system to its original state. Uninstallation programs typically leave remnants of the software in place—especially .dlls that other applications might be using. Instead, use a program such as Drive Image or Norton Ghost to restore a clean copy of the reference system. You might want to store this copy on a separate partition of your reference system to speed up restores.

SMS Installer requires a lot of available hard disk space on the reference system. You need enough space to install the application and store the list of differences that SMS Installer generates. This list is as large as the application you're installing, and it often contains additional entries (e.g., Registry changes). If you install a 200MB application, your difference file might easily be 250MB.

You must also have sufficient hard disk space on the client computers. If your SMS Installer package prevents users from choosing the application's destination drive, your target systems must have sufficient disk space available on the same drive you used for the reference installation. For example, if you install a 160MB package on drive E, each target computer must have at least 160MB free on its E drive. (Or you must configure the package to let users choose their installation directory.) An easy way to check the available hard disk space on the target computers is to run a query against your SMS database.

Configuring Installation Attributes: The Installation Interface
To run SMS Installer on your reference system, choose the 16- or 32-bit program. The SMS Installer dialog box, which Screen 1 shows, opens to let you select installation attributes. The dialog box lists them on the left. Each installation attribute has several configuration options, which the icons on the right side of the dialog box represent.

To configure an installation attribute, select the attribute in the leftmost window of the SMS Installer dialog box, click Properties, and choose a tab from the dialog box that opens (which Screen 2 shows). The tabs on this dialog box correspond to the icons in the previous dialog box. Alternatively, you can select the attribute in the SMS Installer dialog box and click the icon in the rightmost window. The first installation attribute is the Installation Interface. The Installation Interface dialog box lets you configure how users see the installation process from their computers.

First, you must choose the installation medium. Select the Media tab in the Installation Interface dialog box. Because software packages are large, you typically use the Single File approach. If you plan to use SMS to distribute a package over the network (rather than via CD-ROM), you'll want to use this method. The Single File approach produces one large .exe file that you can send to clients. This .exe file contains compressed versions of the software files, so you can turn off SMS's compression feature when you build the software distribution package. An alternative approach for installation media is to put the software package on several 3.5" disks. However, disk-drive technology is so far behind other computer technology that this option isn't realistic unless the package contains only a few device drivers or utilities.

The next option you need to configure is the default installation directory. You define this option under the Application tab of the Installation Interface dialog box. When you configure the installation directory, you can specify a title for the directory. This title will appear on the installation wizard dialog box when the software installs on a client's computer.

The Dialogs tab of the Installation Interface dialog box lets you specify which dialog boxes the user sees during installation. You select only the dialog boxes you want to be visible, as Screen 2 shows. If you don't select a dialog box, the user doesn't see that dialog box during installation and therefore can't specify options. For example, if you want to prevent a user from selecting software components during installation, clear the Select Components check box. This action ensures that all users receive the same set of components (i.e., the set you installed on the reference system). Even if you specify an installation directory, users can change the directory if you select the Destination Directory check box. I suggest that you force the installation to a directory you choose, rather than letting users choose another directory. Specifying a directory makes the Help desk staff's job easier if they need to troubleshoot the installation, either by walking the user through the process over the phone or by using SMS Installer's remote-control capabilities.

The Installation Interface dialog box's Graphics tab lets you display a bitmap graphic on users' computer screens while the software installs. Perhaps you'd like to display a picture of the Help desk team ... or maybe not.

SMS's Management Information Format (MIF) files collect inventory information about equipment and personnel (e.g., client licenses). You need to configure the MIF file options under the Installation Interface SMS tab. SMS Installer builds an MIF file for you, so that the SMS Site Server receives information about client installations. (Although the MIF file reports that the installation started, this report doesn't guarantee that the installation completed successfully.) You need to specify a name for the installation MIF file. You can also specify a name for the uninstall MIF file. This file provides support for an uninstall option on the target computer and generates an SMS report if the user uninstalls a software package.

An advantage of the SMS Installer uninstall approach is that SMS Installer records the file and Registry changes that occur and can therefore efficiently undo changes. Other uninstall programs must figure out which .dlls and other files are part of a software package, which often results in incomplete uninstalls. SMS Installer can also build a Program Definition File (PDF) to enhance the SMS software-distribution process. SMS Installer for SMS 1.2 builds a version 1.0 PDF, and SMS Installer for SMS 2.0 builds a version 2.0 PDF.

You can configure several installation attributes in addition to the options the Installation Interface dialog box offers. However, you'll want to configure these other attributes after you install the application on your reference system.

Installing Applications
To install an application on your reference system, click Repackage on the SMS Installer dialog box. In the Repackage Installation dialog box that opens (which Screen 3 shows), you specify the setup program you want to run, and you can supply command-line options for the installation.

Before the installation starts, SMS Installer takes a snapshot of the reference system's hard disk. The Repackage Installation dialog box lets you tell the program which disks to scan. Even if you plan to install the software on the D drive, make sure to also scan the drive that holds your OS files because many programs dump files into the OS directory. Scanning all the subdirectories is optional, but it's a good idea. You can exclude parts of the Registry from the scan. For example, programs typically don't make changes in the HKEY_USERS tree, so you can safely exclude it from the scan. Excluding this tree speeds up the scan process. You might also exclude directories or Registry keys that contain changes you don't want SMS Installer to replicate. For example, installation programs often place files in the \Temp directory during the setup process.

In the Repackage Installation dialog box, click Next to start the setup process. The scan process starts immediately. SMS Installer scans the directory structure, then the Registry, as Screen 4 shows. After the scan is complete, SMS Installer automatically begins the setup process, as Screen 5 shows. Then, you proceed through the application's installation process, answering questions and selecting components.

When the installation finishes, you see the Repackage Installation dialog box again. Click Run Setup to install another program. You can add several programs to one installation file. Your only limitation is how big you want SMS Installer's difference file to be. Although installing multiple packages from one .exe file might seem like a time saver, troubleshooting the applications can be tricky. You might want to postpone combining applications until you've successfully installed and tested each package individually.

After you install an application, you might want to start the application and configure some of the user options. After you make your changes, click Next in the Repackage Installation dialog box to initiate rescanning of the directories and Registry.

More About Configuring Installation Attributes
When you finish installing the applications, SMS Installer takes another snapshot of your reference system's disks and compiles the differences into an .exe file. But before you distribute the difference file, you must finish configuring the installation attributes.

Application files. To configure the application components and files you want SMS Installer to install, run SMS Installer to open the SMS Installer dialog box. Then, choose Application Files from the list of installation attributes. From the Application Files dialog box, which Screen 6 shows, you can add or delete components or change the order in which SMS Installer installs them. In addition, you can manually add files (e.g., from directories that you didn't include in the scanning process) or remove changed files that you don't want SMS Installer to distribute (e.g., temporary files).

Runtime support. Some applications require special configuration. For example, some applications need Open Database Connectivity (ODBC) support or connectivity to other databases. You can configure these options from the Runtime Support dialog box.

Visual Basic (VB) applications might create problems because your reference system's hard disk probably already contains the applications' runtime libraries, so the libraries don't show up as a difference on SMS Installer's before and after snapshots. You must add these libraries by configuring the runtime options in the Runtime Support dialog box. SMS Installer will then install VB runtime support on the client computers.

One problem with many applications is that they call .dll, .vbx, or .ocx files that already exist on the reference system or that might download to the computer as part of a Web-based function within the application. To make sure your installation set contains all the files the program will need, use the Watch option. (Click Watch in the SMS Installer dialog box.) This option literally watches as you open an application and use the application's features. As you step through each feature, SMS Installer notes the files you access and adds them to the difference list. You'll want to configure the runtime support options before you run the Watch program so that the list includes the runtime files.

User configuration. Sometimes what you want on the client computers differs from what you see on the reference system. You can use the User Configuration option to specify certain options. For example, you can add or remove icons from the Program Files group (such as removing the Setup icon so that users can't rerun the setup program). You can also modify file associations and .ini files. You can modify the Registry entries that the difference process built, but you need to remember that making manual changes to Registry settings is dangerous.

System configuration. The System Configuration dialog box lets you add items to the autoexec.bat and config.sys files. This option is useful when you're working with Windows 3.1 clients.

Advanced configuration. Under the Advanced Configuration attribute, you can customize what users see as the installation occurs on their computers. The tabs in the Advanced Configuration dialog box in Screen 7 show the options you can configure.

Building the Installation File
After the configuration process, you need to build the installation file. Before you compile it, you might want to click Test in the SMS Installer dialog box to review the file with all the options set. To obtain accurate results, uninstall the software package from the reference system before you perform this test.

To start building the installation file, click Compile in the SMS Installer dialog box. The file will be large because it contains all the differences between your before and after snapshots, including the .exe files, .dlls, runtime support, and Registry changes. SMS Installer compresses the file, but .exe files typically don't compress much.

Testing the file after you compile it is a good idea. To test the file, you can reinstall the software on the reference system. A better alternative is to uninstall the software from the reference system and reinstall it using the Run option in SMS Installer. Then, use the .exe installation file to install the software on a clean reference system.

Distributing Applications
After you build the installation file, you need to determine which systems to include on the distribution list (DL). Then, build a job to run the .exe file on these target systems. You need an SMS client license for each system on which the SMS Installer-generated .exe file runs. Other ways to distribute the software include writing the .exe file to a CD-ROM that you give to users, sharing the file on the network and letting users connect to the share from their computers, and providing a link to the share location from your corporate intranet or other Web page. Regardless of the distribution method you choose, SMS Installer installs the software on users' systems exactly as you installed it on the reference system.

Helpful Tips
When you use SMS Installer to distribute packages, keep two important points in mind. First, log on as a regular user rather than an administrator when you install the software on the reference system. If you log on as an administrator, only administrators will be able to install the package. Second, make sure the .exe file is in a separate directory when you build the distribution package. SMS Installer builds a package that contains every file in the directory, so the package might become larger than you expect if the source directory contains multiple files.

Streamlining Your Job
Disk-image applications such as Drive Image and Norton Ghost are useful for rolling out new systems. But when you need to distribute applications to existing systems with varied hardware, the difference approach is best. SMS Installer simplifies large-scale installations and gives you the level of control you need to avoid the problems associated with today's multiple-option, multiple-component software.