Supplemental Applications Feature Team Guide

Planning

Published: August 27, 2005

This section describes the focus of the six role clusters during the Planning Phase. It also explains the importance of a lab environment, packaging techniques, and distribution techniques. Figure 3 illustrates the Planning Phase of supplemental application packaging.

Figure 3. Planning for supplemental application packaging

Figure 3. Planning for supplemental application packaging
See full-sized image

On This Page
Roles and ResponsibilitiesRoles and Responsibilities
Integrating with the Application Compatibility and User State Migration Feature Teams Integrating with the Application Compatibility and User State Migration Feature Teams
Establishing the LabEstablishing the Lab
Understanding Packaging TechniquesUnderstanding Packaging Techniques
Inventorying ApplicationsInventorying Applications
Choosing Distribution TechniquesChoosing Distribution Techniques
Milestone: Build Environment EstablishedMilestone: Build Environment Established

Roles and Responsibilities

The six role clusters from the MSF Team Model play a role in the Planning Phase of the initiative. Table 1 lists those roles and defines the focus areas for each. For more information about MSF team role clusters, see the MSF for Agile Software Development page at http://www.microsoft.com/technet/itsolutions/msf/default.mspx.

Table 1. Roles and Responsibilities During the Planning Phase

RoleFocus

Product Management

Input into conceptual design, business requirements analysis, communications plan.

Program Management

Conceptual and logical design, functional specification, master project plan and master project schedule, budget.

Development

Establishment of lab, application inventory prioritization and review.

User Experience

Usage scenarios and use cases, user requirements, localization and accessibility requirements, user documentation, training plans, schedules.

Test

Testing requirements definition, test plan and schedule.

Release Management

Design evaluation, operations requirements, pilot and deployment plan and schedule, network discovery, application and hardware inventory, interfacing with operations and security.

Integrating with the Application Compatibility and User State Migration Feature Teams

The Supplemental Applications feature team must integrate with the Application Compatibility and the User State Migration feature teams. The Application Compatibility feature team must determine which applications will be deployed to client computers and identify any special requirements to enable the applications to run properly on the target platforms. The User State Migration feature team will identify the best way to migrate application data from supplemental applications. Consult with the User State Migration feature team to identify any changes that may be necessary during the deployment of supplemental applications to ensure user data can be retained after the migration is complete.

Establishing the Lab

During the Planning stage, you establish the lab environment in which you will conduct all the development work. The Supplemental Applications feature team does not necessarily need a separate lab. Typically, the team can use the lab infrastructure established by the Computer Imaging System feature team, the Application Compatibility feature team, and the User State Migration (USMT) feature team. However, the Supplemental Applications feature team needs to ensure that it has the application packaging software.

For more information about establishing the lab environment, refer to commandment number 1, “Prepare your Packaging Environment,” in Macrovision’s “The 20 Commandments of Software Packaging”
(included with BDD).

Understanding Packaging Techniques

Many organizations want to customize application installations to help them meet their unique business requirements. Providing a single way to install all applications and guarantee the installation process greatly reduces the amount of time and effort spent troubleshooting application issues. A simple customization might involve configuring the installation process to proceed without user input. This type of installation is commonly known as quiet, silent, or unattended mode. A more complex situation might involve fully customizing the content of an installation by adding, removing, or changing files and other resources that are to be installed.

In the past, application manufacturers delivered a unique Setup program for each application. In some cases, the Setup program that was supplied with the application allowed a limited amount of customization (for example, by editing a Setup.inf file). However, information technology (IT) personnel frequently had to manually customize and repackage applications that did not allow customization.

The command-line interface to control the installation of each application also varied. This required administrators to spend time learning different managerial facilities for each program. For example, the command-line option to uninstall an application could have been /u, /r, /x, -u, -r, -x, or even something totally different. Additionally, needing to install an application for a single user or for all users on a computer sometimes required radically different procedures.

While modern applications are much more consistent in the way they provide unattended installations, legacy applications are still burdened with complicated and varying setup procedures. Organizations that want to deploy such applications in a consistent and reliable way must use application packaging. This guide covers three major categories of application packaging.

Note   Within the Planning Phase, you will choose an application packaging technique. You will not implement the application packaging until the Developing Phase.

Within each of the three major categories, there can be several different solutions. The three categories are as follows:

An installation executable that natively supports unattended installation:

Windows Installer

InstallShield Response Files

Other setup scripts

Repackaging technologies:

AdminStudio

Wise Package Studio

Screen scraping (keyboard stuffing):

Microsoft Windows Script

The following sections discuss each technology in more detail. For instructions about how to use each of these technologies, see “Developing” later in this guide. References to detailed instructions and documentation, when available, about the various technologies and methods are listed.

Evaluating an Application

You can use the decision tree in Figure 4 to help decide which automation approach to use.

Figure 4. Decision tree for application packaging technology selection

Figure 4. Decision tree for application packaging technology selection
See full-sized image

Consider the following factors when answering the questions in Figure 4:

Does the application have its own automation capabilities? First, look for an .msi. file on the setup media. This .msi file is a Windows Installer file that you can use to automate installation. If there is no .msi file, there is still a distinct possibility that the setup procedure supports a different automation technology. If you are automating a popular, widespread application (as opposed to an internally developed application), you can probably find information on the Internet from administrators who have previously automated the application installation. The best place to start is the AppDeploy.com Package Knowledge Base page at http://www.appdeploy.com/packages/, which contains a knowledge base of applications that have been packaged and deployed by other people, a list of ways to automate the installation, and details about potential problems.

Can the application be installed using a repackaging technology? If the application lacks its own automation capabilities, you may be able to install it by repackaging the application. The best way to determine whether an application can be repackaged is to attempt to repackage it and then test deployment in a lab environment. This document provides detailed instructions for repackaging applications.

Does the application support screen scraping? Most applications with interactive installers can be automated by using a tool that simulates keypresses, such as Windows Script. Occasionally, the installation procedure may require the user to use the mouse or otherwise perform some complex task that cannot be easily automated. In these circumstances, automating the installation process may not be feasible.

Note   ScriptIt was previously used for simulating keypresses; however, the tool is now considered outdated. Windows Script provides a more flexible and powerful platform for screen scraping.

Table 2 shows the similarities and differences among common automated installation tools: Windows Installer, setup scripts (provided from the application vendor), AdminStudio, Wise Package Studio, and Windows Script. You can use this table to help determine which tool best fits your environment and needs.

Table 2. Automated Installation Tool Features

AttributeWindows InstallerSetup scriptsAdminStudio Professional EditionWise Package StudioWindows Script

Requires no user intervention

Yes

Yes

Yes

Yes

Yes

Available at no extra charge

Yes

Yes

No

No

Yes

Can install more than one program at a time, including file and registry settings

Yes

No

Yes

Yes

No

Has intelligent wizard-driven interface rather than having to edit a text file

Yes

No

Yes

Yes

No

Has a graphical user interface (GUI) tool with many features

Yes

No

Yes

Yes

No

Shows whether client has completed or failed an installation

Yes, if configured

Not necessarily

Yes

Yes

Yes, if scripted

Can create an installation package for multiple computers and can designate the conditions when it will install

Yes

Not necessarily

Yes

Yes

Yes, if scripted

For more information about evaluating applications for repackaging, refer to commandment number 5, “Know When to package,” and commandment number 6, “Repackage or Customize all of your Software Installations,” in Macrovision’s “The 20 Commandments of Software Packaging”
(included with BDD).

Windows Installer

Windows Installer, also known as Microsoft Installer or MSI, is a technology and file format for installing applications on Windows computers. Most new applications, including almost all new Microsoft applications, include Windows Installer files. The inclusion of a Windows Installer package (.msi) file with an application greatly simplifies deployment, because you will probably not need to repackage the application.

Because Windows Installer is so flexible and easily deployed to an enterprise, you might want to deploy applications in a Windows Installer package even if the software developer has not included an .msi file. You can usually repackage an application into an MSI file by using a repackaging tool, such as AdminStudio or Wise Package Studio (each discussed in this paper). Sometimes, repackaging an application is very easy. Other times, it is extremely challenging and time-consuming. Occasionally, it is impossible or impractical to repackage an application.

If your IT department develops applications internally, you should work with the development team to have them package their applications in Windows Installer files to enable simplified deployment. This is known as authoring. Authoring is often done directly within the development environment with tools such as Microsoft Visual Studio®. Authoring can also be performed with third-party tools such as InstallShield. For more information about Visual Studio, visit the Microsoft Visual Studio Developer Center page at http://msdn.microsoft.com/vstudio/. For more information about InstallShield, visit the InstallShield home page at http://www.installshield.com/products/installshield/.

Windows Installer packages provide the following to enable flexible application deployment:

Command-line options. Command-line options are used to specify transforms (described later in this document), variables, switches, and file and path names and control the action of the installation at runtime.

Properties (variables) on the command line. Properties are variables that Windows Installer uses during an installation. A subset of these, called public properties, can be set on the command line.

Transforms. A transform is a collection of changes you can apply to a base Windows Installer package (.msi) file. You can customize applications by using Windows Installer transform (.mst) files. You configure transforms to modify a Windows Installer package to dynamically affect installation behavior according to your requirements. You associate transforms with a Windows Installer package at deployment time. Transforms for Windows Installer package files are similar to answer files that you might have used to automate the installation of an operating system such as Microsoft Windows XP.

A Standard Command-Line Interface

By providing a standard installation engine and packaging format for applications, the Windows Installer technology enables all applications using it to share the same Windows Installer properties and command-line options. For example, for every application installed by Windows Installer, the command-line option to perform an installation without displaying a user interface (UI) is /qn. The command-line option to create verbose log files is /lv*.

A Standard Format and Method

Windows Installer provides a standard package format for applications and a standard method for customizing applications. You can tailor an application to a particular group of users by taking the application's Windows Installer package and customizing it by creating and using a transform that installs a selected set of features for that group of users. For example, for a group of users in the Marketing department, you might create a Microsoft Visio® transform that installs a special set of stencils. For users in the Engineering department, you might create a transform that installs a set of stencils different from those installed for the Marketing department.

In most deployment situations, you need to maintain only a single Windows Installer package for each application and a library of transforms that you can apply to each package. For more information about the standard Windows Installer package file types, .msi and .mst files, see "MSDN Windows Installer overview" in the “References” section later in this guide.

At its basic level, a transform file contains a set of differences between the base package (provided by the application manufacturer) and the customized package.

You can also use a transform to answer all installation questions for the user. This can eliminate the need for user intervention during the installation of an application while replacing the manufacturer's defaults with defaults appropriate for your organization. This is particularly useful in customizing and performing unattended installations. The following are the most common application customizations that you can create by using transforms:

Specify the features to be installed.

Define the level of user interaction during the installation. This works in combination with the command-line options you set. For example, you might want to allow the setup procedure to prompt users for their names.

Specify the answers to be provided in the Setup UI during the installation.

Specify a location to install the files.

Specify the placement of shortcuts.

Add files to the installation.

Specify the registry settings to be added or changed during the installation.

Installation Privileges

Users who do not have full administrative privileges are called limited users, low-rights users, or restricted users. To create limited users, exclude the users from the Administrators and Power Users local security groups on their computers. This reduces security risks by blocking many types of malware that might infect the computer. It can also increase system stability and uptime by preventing the user from making configuration changes to his or her computer. However, these benefits have a cost. Limited users will not have sufficient privileges to run some applications properly. As a result, enabling the applications to run requires the application packaging team to spend extensive time testing applications and adjusting permissions and configuration settings. For more information about limited users, refer to the Solution Accelerator for BDD Security Feature Team Guide.

It is possible for limited users to be able to run many applications but still not have sufficient privileges to install the application. For example, if the installation procedure makes changes to the All Users profile, setup will fail if run by a limited user. To work around this limitation, the Windows Installer service enables you to install packages while a limited user is logged on. Currently, the only way to take advantage of these elevated installation privileges is to use Group Policy–based software deployment in a Microsoft Active Directory® environment.

Windows Installer enables you to install packages in two ways:

Per computer. You can use software distribution technologies to install an application on a computer by using administrator-level privileges in the operating system’s All Users profile. The following is a sample command-line argument that you might use to install an application in the All Users profile (per computer) that does not include a UI from an administrative share (this command must be run by using an account with elevated privileges):

msiexec /i \\server\share\application\setup.msi /qn ALLUSERS=1

Per user. Windows Installer provides software distribution technologies to assign or publish applications to users. Windows Installer also provides the functionality to install an application by using administrator-level privileges while operating within the user's context, regardless of the user's privileges.

Note   Install packagers per computer whenever possible. Per-user installs may require each user to install updates, which complicates the update process.

Currently, only the Group Policy–based software deployment technology, implemented in the Active Directory components of Microsoft Windows Server™ 2003 and Microsoft Windows 2000 Server, takes advantage of the functionality of providing elevated privileges on a per-user and per-computer basis. Administrators can use Group Policy with Windows-based security to prevent users from installing applications not required for their jobs. This can help you reduce management and licensing costs substantially.

System Restore

Users can use the System Restore feature of Windows XP Professional to reverse harmful changes to their computer caused by installing or uninstalling applications. This feature enables the user to return the computer to an earlier state known as the restore point. Windows Installer automatically creates a restore point each time an application is installed or removed. Restore points identify the name of the application and the stage of the installing (or uninstalling) of that application. The System Restore Wizard helps a user return a computer to the state just before installing or uninstalling the application.

Note   System Restore can slightly degrade system performance, particularly during application installation. In organizations with many small applications, especially during the supplemental application deployment, administrators may decide to disable checkpointing from within the installer to improve performance. You can prevent Windows Installer from creating restore points by setting the Disable Creation of System Restore Checkpoints policy. For more information about this policy, see the “References” section later in this guide. After installation is finished, re-enable System Restore. You can use Windows Management Instrumentation (WMI) scripts to enable System Restore.

Windows Installer File Extensions

Table 3 lists the filename extensions that are used with Windows Installer.

Table 3. Windows Installer File Extensions

ExtensionDescription

.msi

Windows Installer package

.msm

Windows Installer merge module

.msp

Windows Installer patch

.mst

Windows Installer transform

.idt

Exported Windows Installer database table

.cub

Validation module

.pcp

Windows Installer patch creation file

Inventorying Applications

As part of the Planning Phase, the Supplemental Applications feature team must identify which applications need to be packaged and deployed. The sections that follow discuss important considerations for inventorying supplemental applications. For information about the inventory process and tools to use for inventorying software, refer to “Generating an Application Inventory” in the Application Compatibility Feature Team Guide.

Prioritizing Applications

After the Supplemental Applications feature team has obtained a copy of the application inventory from the Application Compatibility team, it can review the application inventory.

The Supplemental Applications feature team typically addresses only the applications that will be redeployed during the deployment project and that have been through the application compatibility testing to ensure they can be run on Windows XP. There is little use in packaging an application that will be neither deployed nor run on the target operating system.

Often, a committee is established with representatives from the User Experience team, IT operations, the Application Compatibility feature team, the Supplemental Applications feature team, the User State Migration team, and product management. This committee reviews the application lists and decides which applications will move forward and be redeployed during the deployment process and which applications will be retired. These decisions affect all the teams on the committee, but they have particular significance to the Supplemental Applications feature team, the Application Compatibility team, and the User State Migration team.

Prioritizing this application list helps the team focus on the applications in an orderly process. Often, the applications are prioritized based on a combination of how pervasive an application is in the environment and the application’s complexity. The most pervasive or complex applications are listed first, followed by the less pervasive and simpler applications.

Identifying Application SMEs

After the Supplemental Applications feature team has its prioritized list of applications that are known to work on Windows XP, it can start to address each application in order of priority. This will be a repetitive process, cycling through each of the applications in turn.

The application packaging developers need not be experts in all the applications in the enterprise. It is important for both the Supplemental Applications feature team and the User State Migration feature team that an SME be identified for each application. Though the term “subject matter expert” is used, the SME does not necessarily need to be an expert in the application; however, the SME is the person identified as having the most overall experience with the application. The SME will provide insight into how the organization installs, configures, and uses each application.

Identifying Files and Settings

The investigation and identification of each application starts in the Planning Phase and continues through the Developing Phase of the deployment project.

The application packaging developers and the application SMEs review each application and identify specifically which files, or file types, need to be migrated, which settings or preferences need to be migrated and where they are to be stored, and where the files should be placed during the restore process on the new workstation.

SMEs should provide assistance in the following key issues:

Locating the software media. Often the SME is the best source of information about where the source media (such as CD-ROMs or floppy disks) can be found.

Describing the appropriate configuration, behavior, and usage of the application.

Understanding the external interface connectivity requirements, if any, of the application. This may include a back-end database, mainframe, Web site, or other application server.

Identifying any constraints associated with an application.

Knowledge of the above key issues is crucial when modeling the pilot environment to closely match the production environment.

Note   If possible, store all user data under the user’s profile, either in \%userprofile%\My Documents or \%userprofile%\Application Data. The application SMEs should provide information about the feasibility of any data-file relocation requirements.

The User State Migration team, the application SME, and the Supplemental Applications feature team should work together very closely because there are expectations and dependencies across these teams and the SME with respect to where data and settings are located.

Choosing Distribution Techniques

To distribute supplemental applications without requiring administrators to manually install software on each client computer, you must identify a way to automate the installation. Most applications, especially recently developed applications, have native support for Windows Installer or InstallShield Reponses files.

Alternatively, you can create a Windows Installer package for an application by using a technique called repackaging. Repackaging is a challenging, time-consuming, and error-prone process, however, and should only be used when no more efficient method of installation automation is available. If neither native automation nor repackaging is available, you might be able to automate the installation by using scripting.

The sections that follow discuss how to plan for automating installations or for repackaging a supplemental application.

Automating Installations

Most applications provide native support for automation by using their native setup routine. Recently created applications almost always provide Windows Installer packages. Legacy applications released before Windows Installer became a popular format might instead use InstallShield response files for automation. If an application’s setup procedure supports neither of these automation technologies, you might be able to automate the installation by using scripting to simulate keypresses. The sections that follow discuss these technologies in more detail.

Planning for Automation of Windows Installer Packages

Automation of Windows Installer packages is straightforward and flexible. If you have a software distribution infrastructure, such as Group Policy software distribution, you can configure the packages for deployment by using a simple, point-and-click UI. If you do not have a software distribution infrastructure, you can automate the installation of Windows Installer packages by using command-line parameters and logon scripts. For detailed instructions, refer to the “Developing” section in this paper.

Planning for Automation with InstallShield Response Files

InstallShield is a popular developer tool for authoring a setup process for an application. Though most modern InstallShield-based setup procedures now support Windows Installer packages, earlier versions of InstallShield used a proprietary format. Fortunately, this format is easily automated by using InstallShield response files. For detailed instructions for customizing InstallShield response files, refer to the “Developing” section.

Planning for Automation Using Scripting

Some applications cannot be automated with command-line parameters. These applications might provide a wizard-based setup routine but require the user to click buttons or press keys on the keyboard to progress with the installation. If a user can complete the installation by using only the keyboard, then you can probably automate the installation by creating a script (a series of text commands) that simulates keypresses.

To understand how to automate a procedure by simulating keypresses, you must first understand that most applications provide keyboard shortcuts, even if most people use the mouse. For example, in most Windows applications, you can press the Alt key to open a menu. After you press the Alt key, one letter on every menu item is highlighted. You can then press that key to select that menu item.

For example, in Microsoft Word, you can save the current file by pressing three keys: Alt, F, and S. The Alt key selects the menu and causes keyboard shortcuts on the menu to be underlined. The F key opens the File menu. The S key selects the Save command. Similarly, you can perform a Save As in Word by pressing Alt, F, and A.

Dialog boxes often have underlined letters, which indicates that you can hold the Alt key and press that letter to activate a link, list, or button. For example, Figure 5 shows a portion of a dialog box that is part of an installation wizard. The x in Exit Setup is underlined, so you could press that button without using the mouse by pressing Alt+X. Similarly, the H in Help is underlined, so you could press Alt+H to open help.

Figure 5. Keyboard shortcuts in installation wizards

Figure 5. Keyboard shortcuts in installation wizards
See full-sized image

In Figure 5, OK does not have an underlined letter. Typically, an OK or Next button is considered the default button, and you can activate it by pressing Enter. Alternatively, you can select the button by pressing the Tab key repeatedly. A dotted box shows which button is currently highlighted. Then, you can press Space to active that button.

Again considering Figure 5, there are two ways to activate the OK button: pressing Space (because it is selected) or pressing Enter. There are also two ways to activate the Exit Setup button: pressing Tab, then pressing Space, or pressing Alt+X. Either accomplishes the same goal. Depending on the application, you may have to rely on different techniques.

To automate an application installation, first install the application by using only the keyboard. Write down every key you press. Note any significant delays, such as the time taken to copy files or perform the actual installation. Then, create a script that simulates those keypresses and delays. When you run your script on client computers, the keypresses will install the application. The “Developing” section of this paper provides explicit instructions for creating scripts, as well as sample scripts.

Repackaging Overview

If you have an application that is not designed for Windows Installer and does not support another native installation automation technique, you can repackage it into the Windows Installer package format so that you can use the features of Windows Installer to distribute the application. A repackaged application combines the entire feature set of the application into a single feature. In other words, after an application is repackaged, you cannot pick and choose which components you want to install. Instead, you would need to create separate packages for each combination of application components.

After an application is repackaged, you can install it with Windows Installer. However, repackaged applications lack the flexibility to efficiently customize the application installation, which is a feature of applications natively designed to be deployed with Windows Installer.

Note   Before repackaging any applications in your organization, it is important to compare the benefits with the costs involved. Repackaging is an advanced operation. There are tools that can help developers create the final Windows Installer package, but the procedure is resource-intensive and can be costly.

Warning   Do not repackage Microsoft Office 2003 Editions. The Office 2003 Editions package file includes logic that customizes the installation per each target computer. Repackaging the Office 2003 Editions package file loses this logic, potentially preventing the package from installing correctly in some configurations. For more information about deploying Office 2003 Editions with Solution Accelerator for BDD, see the Solution Accelerator for BDD Core Applications Feature Team Guide.

The Repackaging Process

Repackaging is not a function or feature of Windows Installer. However, third-party vendors provide tools to enable you to repackage applications in a variety of formats.

Organizations have repackaged applications for years largely for the purpose of customization. Transforms, however, eliminate the need to repackage Windows Installer–based applications for customization. In fact, repackaging an application that already uses Windows Installer for installation and maintenance would be very difficult and is not supported.

Some organizations prefer to repackage existing applications to gain the benefits of Windows Installer and the Group Policy–based software deployment technology of Windows Server 2003 and Windows 2000 Server. Repackaging also requires a thorough knowledge of the application's installation. The cost of repackaging in labor, time, and reliability is often underestimated.

Repackaging a Windows Installer package involves taking a snapshot of a clean computer (including the registry settings, files, and system settings), installing the software, taking a post-installation snapshot of the computer, and cleaning the package, as shown in Figure 6. The repackaging software detects the difference between the two snapshots and creates the necessary installation instructions to reproduce the installation. Any changes to the registry settings, files, or system settings that occur during the capture process are included in the installation. Typically, from 30 to 40 processes run on a Windows XP Professional computer at any given time. Thus, any one of those processes can modify a system during the installation, and the modification appears in the repackaged application.

Figure 6. The repackaging process

Figure 6. The repackaging process

For more information about the repackaging process, refer to commandment number 2, “Use Proper Workflows,” in Macrovision’s “The 20 Commandments of Software Packaging”, and review Macrovision’s “MSI Repackaging and Customization Best Practices Guide” (both included with BDD).

Potential Repackaging Problems

You can improve the reliability of repackaged applications by running them on computers that have identical hardware and software. Some common causes of failed installation or poor functionality of repackaged applications include the following:

Systems that run the same operating systems but which differ in the optional operating system components that are installed. For example, if you repackage an application by using a snapshot on a computer that has Microsoft Internet Information Services (IIS) installed, then deploy that package to a computer without IIS, the application will not work if it requires IIS or any components of IIS.

Differences in service pack versions. Application installation routines may install updated system libraries only if they are not currently installed on a computer. Therefore, deploying an application on a computer with a different service pack or update version can result in system files not being properly updated (or worse, system files that are downgraded).

Differences in operating systems, such as Windows XP Professional versus Windows Server 2003.

Differences in versions of shared components, such as Microsoft Internet Explorer.

Differences in versions of other installed applications, such as Office. Many applications share libraries. If these libraries already exist on the computer you use to create a package but do not exist on a destination computer, the application will not run correctly.

Note   Repackaging applications into the Windows Installer format has limitations and might not be supported by the application manufacturer. Check with each application manufacturer. Microsoft supports authoring and customizing applications that natively use Windows Installer for installation and maintenance. However, it does not support applications repackaged as Windows Installer files. The repackaging software manufacturer provides this support.

The following information can prepare you to deal with the most common challenges of repackaging applications:

Repackaging includes irrelevant or unrelated information. Repackaging, by design, can include information in the Windows Installer file that is not part of the application. For instance, if you capture the first snapshot, launch a program by using the Run dialog box, and capture the second snapshot, the command line will be added to the most recently used (MRU) list for the Run dialog box during installation. Another example is if the computer restarts between the first and second snapshot; the package will record service state information, logon time, and so on. While these examples are relatively harmless, others can disrupt the stability and functionality of a system. It is possible for a highly skilled and experienced technician to eliminate extraneous or detrimental information from a capture when repackaging applications for Windows Installer. Even then, it is a labor-intensive and therefore costly operation.

Installing features on-demand is not possible. Installing individual features on-demand is not possible when an application has been repackaged. When you repackage an application, the resulting Windows Installer package contains only one feature. That is, the Windows Installer installs either all or none of the application.

To take advantage of install-on-demand functionality, an application must be developed with multiple features so that those features can be installed individually instead of all at once. Whether these features rely on shared components depends on the design of the application, and the developer must understand all the relationships among features and components.

Repackaged applications have little resiliency after installation. Typically, repackaging specialists create packages that self-repair by using Windows Installer. This type of resiliency can produce unexpected results and can be unreliable. Repackaging tools neither decipher component dependencies nor specify the keypath for an application. The keypath is the file or registry value that the Windows Installer uses to determine whether a component needs to be repaired. Therefore, repackaged applications are more likely to be corrupted after installation than applications that are distributed using their original packaging.

Repackaging Tools

You will need to use tools not included with Windows Installer to create Windows Installer packages. While many such tools are available, this paper addresses the following:

AdminStudio. Available in multiple versions, including a free download, AdminStudio is a powerful and flexible repackaging tool.

Wise Package Studio. Wise offers products for repackaging, testing, and configuring the deployment of applications.

The sections that follow discuss these tools in more detail.

AdminStudio

AdminStudio is available in two main varieties:

AdminStudio SMS Edition. This free download from Microsoft.com integrates with SMS to simplify repackaging. AdminStudio SMS Edition prepares legacy Setup.exe packages for deployment by converting them to Windows Installer .msi packages. To download AdminStudio SMS Edition, visit the AdminStudio SMS Edition download page at http://www.microsoft.com/smserver/downloads/
2003/featurepacks/adminstudio/
.

AdminStudio Professional Edition. This full version of AdminStudio is a complete solution for packaging, customizing, testing, and distributing applications. The full version includes all of the features included with AdminStudio SMS Edition and adds many features. To download a trial of AdminStudio Professional Edition, visit the AdminStudio software overview page at http://www.installshield.com/products/adminstudio/.

This paper contains only information about AdminStudio Professional Edition. For information about AdminStudio SMS Edition, please refer to the Supplemental Applications Feature Team Guide  in the Standard Edition of the Solution Accelerator BDD.

AdminStudio Professional Edition includes the full-featured industry leading InstallShield Repackager, which prepares legacy Setup.exe packages for deployment by converting them to Windows Installer .msi packages. The InstallShield Tuner is included to assist in customizing MSI packages by adding files, changing registry settings, adding license keys, removing registration wizards, and making other modifications that will then be compiled in a transform (MST). Finally, a Distribution Wizard and secure SMS Web console are included to assist in handing off the packages for distribution through SMS 2003. Table 4 describes these features in more detail.

Table 4. AdminStudio Professional Edition Key Features

Key FeatureDescription

Repackager

A wizard–based tool that makes it easy to convert any setup—even difficult–to–package InstallScript MSI setups—into 100 percent MSI packages. Repackager includes InstallMonitor for snapshot-free repackaging, SmartScan for extracting the maximum information from InstallScript setups during conversion to MSIs, Setup Intent for helping to ensure MSIs do not miss important files, and the Packaging Process Assistant for pointing you to the correct packaging process. AdminStudio can prepare packages for distribution with Microsoft Systems Management Server (SMS), Novell ZENworks, Tivoli, Marimba, LANDesk, ManageSoft, and Altiris. You can also distribute packages via Group Policy software distribution.

Legacy Format Conversion

Convert SMS, Novell ZENworks, WinINSTALL, and Wise WSE software packages directly into robust MSIs without wasting time. The automated Converter copies all file and registry data from legacy setups into a new AdminStudio project so that you can bypass packaging and automatically convert the installations directly into MSI packages.

InstallShield Tuner

Quickly create transforms (MST), including Response File transforms, to customize software already in the Windows Installer format. Add files, change registry settings, add license keys, remove registration wizards, or make other modifications to the MSI package, then automatically validate any changes made to ensure the MSI package conforms to Microsoft guidelines.

Distribution Wizard

This wizard-based system automatically creates the system-specific files necessary to successfully deploy packages, providing excellent integration with SMS 2003.

SMS 2003 Web Console

Provides Web-based access to key settings and configuration capabilities, including server connection settings, package selection, package configuration, distribution points, and package summary.

Package Authoring

The ability to author new software packages and to directly customize existing Windows Installer packages.

ConflictSolver

Identify and resolve application conflicts in the lab environment.

QualityMonitor

Test packages before deployment.

OS Snapshot Wizard

Captures operating system state, including files, shortcuts, and registry values

Application Isolation Wizard

Helps reduce conflicts related to using multiple versions of a single application in an enterprise

Note   On Windows Server 2003, add the Application Server role and enable ASP.NET before installing AdminStudio to take advantage of important Web-based features.

A trial version is available for download from http://www.installshield.com/products/adminstudio/eval.asp.

Wise Package Studio

Providing similar functionality to AdminStudio, Wise Package Studio repackages applications and updates as Windows Installer files. There are three versions of Wise Package Studio:

Wise Package Studio Standard Edition. The Wise basic repackaging tool provides enough functionality to meet the needs of most organizations, including tools for package creation, customization, validation, and distribution.

Wise Package Studio Professional Edition. Adds many features to Standard Edition, including the following:

Virtual Capture. Enables you to capture multiple application installations on a single client computer without cleaning the computer between installs.

Create .zap files. Enables you to create .zap files if you need to install applications without using Windows Installer.

.ini file changes. Records changes to .ini files.

Wise Script Editor. Provides the ability to edit installation scripts.

ConflictManager. Detects and resolves application conflicts.

Group Deployment. Deploy multiple packages in a single deployment, while controlling the order in which the packages are installed.

Wise Package Studio Quality Assurance. An optional feature set that can be added to Professional Edition, this version is intended for staff responsible for testing applications before deployment.

For more information about the Wise Package Studio products, visit the Wise Package Studio product overview page at http://www.wise.com/wps.asp?bhcp=1.

Milestone: Build Environment Established

Milestones are synchronization points for the overall solution. For more information, see the Solution Accelerator for BDD Plan, Build, and Deploy Guide. This milestone measures the team’s progress toward building a lab environment to support proper development and test and producing the deliverables summarized in Table 5.

Table 5. Build Environment Established Milestone Deliverables

Deliverable IDDescription

Lab Ready

The lab environment is up and running for testing by the Supplemental Applications team.

Application List Identified and Prioritized

The list of applications that the User State Migration and Supplemental Application feature teams must address have been identified and prioritized.

Application SMEs Identified

SMEs for each application have been identified.

Application Media Obtained

The media needed to install the application have been obtained.

Application Evaluation Started

The applications are starting to be individually reviewed for data files and settings.


**
**