Video Screencast Help

Application Packaging Best Practices for Windows XP: Part 5

Created: 24 May 2007 • Updated: 09 Apr 2009 | 3 comments
Language Translations
Scott Hardie's picture
+1 1 Vote
Login to vote

In this fifth and final installment, Scott ties up all the loose ends by discussing package certification, package distribution, and providing a slew of helpful resources you can refer to for help and further guidance.

Editor's Note: Here's a list of the other articles in this series: Introduction, Part 1, Part 2, Part 3, Part 4, Part 5.

Contents

Certification Process

The certification process is a checks and balance system, which allows the packager to run a checker that has pre-defined criteria for standard package settings. It gives the packager an unbiased assessment of the Windows Installer packages prior to being placed into production. The certification analysts will also need to assess the Wise Packaging Team web site, for additional information, refer to Appendix B: Application Certification Checklist and Appendix E: The Packaging Team web site.

Once the application package has completed certification, the application is ready for distribution via Altiris. The application package will be copied to \\Server Name\Wise Share Point\scripts; it is then ready for the Altiris Team to distribute in production. Coordinate distribution of the application package with the local system administrator. Refer to the section Software Distribution Methods for additional information.

Package Rework Process\Additional Modifications Request

If the application package requires modifications to the directory or file structure, these changes will have to be made by the application packager. Since the packaging workstation is refreshed after every application package, the packager will not have the source files available on the workstation to make changes to the package.

The source files for a .MSI package can be extracted by following the steps in the section Convert .MSI file to .WSI file.

Once the source files have been extracted the application package can be reworked or modified accordingly.

Software Distribution Methods

Certified application packages will reside in a global repository or on a local business unit file server. There are three methods for distributing software in the COE environment, Altiris, Group Policy or CD.

Altiris Software Delivery - Package Information

Altiris is a robust software distribution model capable of distributing applications and reporting application information. Once an application has been certified, it is placed in the global repository and available for distribution. Most business unique applications will be distributed via Altiris.

  • All application packages distributed via Altiris will contain a .SWD file.
  • The application package and all associated files will reside in a single directory.
    Example:
    ..\APPNAME\APPNAMEVV_XY.MSI
    ..\APPNAME\APPNAMEVV_XY.SWD
    ..\APPNAME\APPNAMEVV_XY.DOC
    Any additional scripts or files needed to install application
  • Applications will be distributed to the workstation not the user.

Group Policy

Group policy should be used to distribute software if the application is being deployed to a large number of users and/or there is an immediate business need for the application. When using group policy to distribute software, keep in mind there is little control over deployment scheduling and no reporting capabilities for software deployment. Applications distributed via group policy will require testing of the group policy in a lab environment with documented test plan results before the group policy will be implemented in the production environment.

  • The application package and all associated files will reside in a single directory.
    Example:
    ..\ APPNAMEVV_XY\APPNAMEVV_XY.MSI
    APPNAMEVV_XY.DOC
    Any additional scripts or files needed to install application
  • Applications can be distributed to either the workstation or a Windows XP security group.

CD

All Core and Standard applications will be available to install from a CD. By default, all registered applications will not be available to install from a CD. The business units will have to determine the business critical need and availability of the application when disconnected from the network.

  • If applications will be available from both the network and CD, the SOURCELIST property will need to be set in the Property table or on the command line at the time of distributing the application.
  • The application package and all associated files will reside in a single directory.
    Example:
    ..\ APPNAMEVV_XY\APPNAMEVV_XY.MSI
    ..\ APPNAMEVV_XY\APPNAMEVV_XY.DOC

Appendix A: Application Testing Checklist

NOTE: Test ID's for each user scenario have been created in the domain. All applications should be tested under the Advanced user, Power user and Workstation user scenario.

**Expert end user testing is required for each application package. End user testing can be coordinated by the packaging team lead, application packager or application certifier depending on the need at each packaging and/or certification site.

On Packaging Workstation

  • Application installed to the appropriate location:
    • FAT Client - ..\Program Files\%application%
      C:\Apps\%application% (For 16 bit apps only)
    • Thin Client - Drive Letter:\CSAPPS (%PROGRAMFILES%\%application%)
    • Network - \\Network Drive\%application%
      **Note for Network application - If an application will be run from a dedicated application server, refer to the Application Data and Installation Directories document in the COE Public Library for additional information
  • User specific app config files to the appropriate location
    • FAT Client* - ..\Documents and Settings\%username%\Application Data\%application% (hidden folder by default)
      *Note for FAT Client applications - If data will be shared amongst multiple users of the same workstation, the data should be placed under C:\APPS\DATA\%application%
    • Thin Client - P:\WINDOWS
    • Network** - ..\Documents and Settings\%username%\Application Data\%application%
      **Note for Network application - Shared application data should be place under \\Server Name\AppsData\%application%
  • No shortcuts to documents, help or uninstall under Start Menu
  • No application shortcuts on desktop
  • All .dll & application files (components) installed under app dir (if possible)
  • Verify there are no references to a specific user name or application packager.
  • Remove any unnecessary files/registry entries such as:
    Files:
    • *.tmp, *.bak, *.log, uninst.*, unwise.*, setup.exe, setup.ini, win.ini, *.ini, wpa.dbl
    • %SystemRoot%\Ms\Sms\*.* Files
    • %ProgramFiles%\Common Files\Symantec Shared\*.* files
    • C:\Temp\*.* Files
    • %USERPROFILE%\Local Settings\Temp\*.* files
    • %SystemRoot%\Security\Secedit.sdb
    • %ProgramFiles%\Navnt\*.* files
    • %SystemRoot%\CSC\*.* files
    • %SystemRoot%\Debug\*.* files
    • %SystemRoot%\Installer\*.* files
    • %SystemRoot%\System32\Installer
    • %SystemRoot%\System32\wbem\\Repository\*.* files
    • %SystemRoot%\System32\Perflib_Perfdata_*.dat
    • %SystemRoot%\system32\NtmsData\NTMSDATA.BAK

    Registry:

    • Mcafee, symantec, SessionInformation, installshield, [PersonalFolder]
    • Setup.Kernel, Setup.Kernel.1, Setup.LogServices, , Setup.LogServices.1, , Setup.ScriptEngine, , Setup.LogScriptEngine.1, Setup.SetupKernelWrapper, Setup.SetupKernelWrapper.1, Setup.User, Setup.User.1, Setup.ScriptDriverWrapper, Setup.ScriptDriverWrapper.1, Setup.ScriptEngineObjectWrapper, Setup.ScriptEngineObjectWrapper.1, Scripting.FileSystemObject, Scripting.Dictionary, Wscript.Network, Wscript.Network.1, Wscript.Shell. Wscript.Shell.1
    • CLSID\{0D43FE01-F093-11CF-8940-00A0C9054228}
    • CLSID\{EE09B103-97E0-11CF-978F-00A02463E06F}
    • CLSID\{093FF999-1EA0-4079-9525-9614C3504B74}
    • CLSID\{72C24DD5-D70A-438B-8A42-98424B88AFB8}
    • SOFTWARE\Microsoft\Internet Explorer\Toolbar
    • SOFTWARE\Intel\LANDesk\VirusProtect6\CurrentVersion
    • CurrentVersion\run
    • CurrentVersion\Uninstall
    • CurrentVersion\RunOnce
    • HKCU\Software\Policies
    • HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\*
    • HKCU\Software\Microsoft\Windows\CurrentVersion\InternetSettings\*
    • HKLM\Software\Policies
    • HKLM\Software\Microsoft\SMS
    • HKLM\Software\Microsoft\Cryptography
    • HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer
    • HKLM\Software\Microsoft\Windows NT\Winlogon
    • HKLM\Software\Microsoft\Windows NT\Winlogon\GPExtensions
    • HKLM\System\CurrentControlSet\Services\TCPIP
    • HKLM\System\CurrentControlSet\Services\Kmixer
    • HKLM\System\CurrentControlSet\Control\Session Manager\Environment
  • ODBC and related data sources configured properly
  • Services properly configured
  • Environment variables are properly configured
  • Package is fully automated (NO USER INTERVENTION REQUIRED!)
  • Package in compressed format
  • Project and Summary pages populated with appropriate vendor
  • Validate PACKAGENAME and APPS_TEST properties are defined
  • Verify the ALLUSERS and ROOTDRIVE custom actions are set in the Actions tab
  • Verify the ResolveSource standard action is defined in InstallExecuteSequence in table (condition - NOT Installed, value 825)

On Testing Workstation

  • Install package on test box using an Advanced User account
  • Verify that only the progress bar displays during installation (NO USER INTERVENTION REQUIRED!)

Check the following:

  • Application installed to the appropriate location:
    • FAT Client -
      ..\Program Files\%application%
      C:\Apps\%application% (For 16 bit apps only)
    • Thin Client - E:\CSAPPS (%PROGRAMFILES%\%application%)
    • Network - W:\%application%
  • User specific app config files are in the appropriate location
    • FAT Client* - ..\Documents and Settings\%username%\Application Data\%application% (hidden folder by default)
      *Note for FAT Client applications - If data will be shared amongst multiple users of the same workstation, the data should be placed under C:\APPS\DATA\%application%
    • Thin Client - P:\WINDOWS
    • Network ** - ..\Documents and Settings\%username%\Application Data\%application%
      **Note for Network application - Shared application data should be place under S:\AppsData\%application%
  • Verify application shortcuts are properly installed.
    • For FAT and Thin applications, shortcuts installed to All Users profile
    • For network application, shortcuts are installed to current user's profile
  • No application shortcuts appear on desktop and no shortcuts to documents, help or uninstall under Start Menu
  • All DLL & application files (components) installed under app dir (if possible)
  • ODBC and related data sources were installed and configured properly (if necessary)
  • Services are installed and configured properly (if necessary)
  • Environment variables are set and configured properly (if necessary)
  • Start application and test functionality (default locations for File/Save, File/Open, printing, Help, etc.)
  • Check Event Viewer for errors/warnings (fix as needed)
  • Open all core applications and test functionality
  • Repeat Testing Workstation list with each user scenario (adv, pwr, wks)
    • Login to workstation with at least 2 accounts representing each user scenario and test application functionality.
  • Test Windows Installer technology (Testing must be done using an Advanced user account)
    • Test self-healing capability (delete core app file then launch app which should trigger self-healing)
    • Uninstall application and verify all files/registry entries are removed (excluding shared files)
  • Launch at lease one core app and test functionality
  • Coordinate expert end user testing for application as needed**
    • Expert end user should test application under all user scenarios in which the application will be used
  • Complete an %appname%.txt file for this package
  • Use standard naming convention for package name!
  • Copy application package directory to the Certifier Inbox directory for certification

Appendix B: Application Certification Checklist

**Expert end user testing is required for each application package. End user testing can be coordinated by the packaging team lead, application packager or application certifier depending on the need at each packaging and/or certification site.
  • Copy application package from Certifier Inbox to Staging folder
  • Verify that the package contains %appname%.msi, %appname%.doc, %appname%.sms
  • Update the %appname%.txt file with Certifier Analyst information
  • Verify the following in Wise for Windows Installer
  • Verify application installed to the appropriate location:
    • FAT Client - ..\Program Files\%application% C:\Apps\%application% (For 16 bit apps only)
    • Thin Client - Drive Letter:\CSAPPS (%PROGRAMFILES%\%application%)
    • Network - \\Server Name\%application%
      **Note for Network application - If an application will be run from a dedicated application server, refer to the Application Data and Installation Directories document in the COE Public Library for additional information
  • Verify User specific app configuration files are in the appropriate location
    • FAT Client* - ..\Documents and Settings\%username%\Application Data\%application% (hidden folder by default)
      *Note for FAT Client applications - If data will be shared amongst multiple users of the same workstation, the data should be placed under C:\APPS\DATA\%application%
    • Thin Client - P:\WINDOWS
    • Network ** - ..\Documents and Settings\%username%\Application Data\%application%
      **Note for Network application - Shared application data should be place under
      Drive Letter:\AppsData\%application%
  • No shortcuts to documents, help or uninstall under Start Menu
  • No application shortcuts on desktop
  • All DLL & application files (components) installed under app dir
  • Verify there are no references to a specific user name or application packager.
  • Check for unnecessary files/registry entries such as:

    Files:

    • *.tmp, *.bak, *.log, uninst.*, unwise.*
    • C:\Winnt\Ms\Sms\*.* Files
    • C:\Program Files\Common Files\Symantec Shared\*.* files
    • C:\Temp\*.* Files
    • C:\Documents and Settings\%username%\Local Settings\Temp\*.* files
    • C:\Winnt\Security\Secedit.sdb
    • C:\Program Files\Navnt\*.* files
    • C:\WINNT\CSC\*.* files
    • C:\WINNT\Debug\*.* files
    • C:\WINNT\Installer\*.* files
    • C:\WINNT\System32\Installer
    • C:\WINNT\System32\wbem\\Repository\*.* files
    • C:\WINNT\System32\Perflib_Perfdata_*.dat
    • C:\WINNT\system32\NtmsData\NTMSDATA.BAK

    Registry:

    • HKCU\Software\Microsoft\SMS\ and all subkeys
    • HKCU\Software\Policies and all subkeys
    • HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\ and all subkeys
    • HKCU\Software\Microsoft\Windows\CurrentVersion\InternetSettings and all subkeys
    • HKLM\Software\Policies and all subkeys
    • HKLM\Software\Microsoft\SMS and all subkeys
    • HKLM\Software\Microsoft\Cryptography and all subkeys
    • HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer and all subkeys
    • HKLM\Software\Microsoft\Windows NT\Winlogon\GPExtensions and all subkeys
    • HKLM\System\CurrentControlSet\Services\TCPIP and all subkeys
    • HKLM\System\CurrentControlSet\Services\Kmixer and all subkeys
  • ODBC and related data sources configured properly
  • Services properly configured
  • Environment variables are properly configured
  • Package is fully automated (NO USER INTERVENTION REQUIRED!)
  • Package is in a compressed format
  • Project and Summary pages populated with appropriate vendor
  • Validate PACKAGENAME and SOURCELIST properties are defined
  • Verify the ALLUSERS and ROOTDRIVE custom actions are set in the Actions tab
  • Verify the ResolveSource standard action is defined in InstallExecuteSequence in table (condition - NOT Installed, value 820)
  • Test distribution of package through SMS (FAT and Network application packages only)
    • Create Altiris Collection, Package and Job
    • Log onto Testing workstation using a Workstation user account
      **Refer to the SMS checklist in the SMS Application Certification Process document
  • For Thin Client application, using an account with Admin privileges, install application on a Citrix terminal server by going to Control Panel - Add/Remove Programs
  • Verify only the progress bar displays during installation without errors (NO USER INTERVENTION REQUIRED!)
  • Verify application installed to the appropriate location:
    • FAT Client - ..\Program Files\%application%
      C:\Apps\%application% (For 16 bit apps only)
    • Thin Client -Drive Letter:\CSAPPS (%PROGRAMFILES%\%application%)
    • Network - \\Server Name\%application%
      **Note for Network application - If an application will be run from a dedicated application server, refer to the Application Data and Installation Directories document in the COE Public Library for additional information
  • Verify User specific app config files are copied to the appropriate location
    • FAT Client* - ..\Documents and Settings\%username%\Application Data\%application% (hidden folder by default)
      *Note for FAT Client applications - If data will be shared amongst multiple users of the same workstation, the data should be placed under C:\APPS\DATA\%application%
    • Thin Client - P:\WINDOWS
    • Network ** - ..\Documents and Settings\%username%\Application Data\%application%
      **Note for Network application - Shared application data should be place under
      \\Server Name\AppsData\%application%
  • Verify application shortcuts are properly installed.
    • For FAT and Thin client applications, shortcuts installed to All Users profile (..\Documents and Settings\All Users\Start Menu\Programs...)
    • For network application, shortcuts are installed to current user's profile (..\Documents and Settings\username\Start Menu\Programs\Network Applications...)
  • Verify that no application shortcuts appear on desktop and no shortcuts to documents, help or uninstall under Start Menu
  • Verify ODBC and related data sources were installed and configured properly (if necessary)
  • Verify Services are installed and configured properly (if necessary)
  • Verify Environment variables are set and configured properly (if necessary)
  • Start application and test functionality (default locations for File/Save, File/Open, printing, Help, etc.)
  • Open all core applications and test functionality
  • Login to workstation with at least 2 accounts representing each user scenario then test application functionality.
  • Coordinate expert end user testing for application as needed.**
    • Expert end user should test application under all user scenarios in which the application will be used.
  • Check for standard naming convention on package name!
  • Once certified, the packager copy application package directory to the appropriate 'Outbox' on the SMS server directory for distribution. (FAT and Network application packages only)
    • \Certify\SMSOUTBOX directory - The files from the SMSOUTBOX will be copied to the global repository located on HOSMS1. Then the "CERT" SMS package will be created on HOSMS1 for distribution from the Primary SMS servers.
    • \Certifty\LocalOutbox directory - The files in this directory will be available to copy to the appropriate local SMS Primary server for local distribution.

Appendix C: Sample APPNAME.txt file

Application Package Information

Application Name       :
Version                :
Network or Local       :
 
Vendor Name/Phone  :
Internal Contact/Phone :
 
Dependencies:
          Applications:
          Databases:
 
Media Type:   CD      Diskettes       Files located on server (indicate server location)
.MSI Origin:    Vendor Provided       Created In-House
 
Product Code:
Can be found in the Product table of .MSI package.
 
Transform (.MST) Required? Yes     No
          If yes, transform file name:
 
Reboot required?       Yes     No
 
Packager Name/Location:
Packager Phone Number:
Package Creation Date:

End User Tester's Name/Location:
Date of Application Testing:
Waive Testing - Name / Date:
 
Certification Analyst Name/Location:
Certification Analyst Phone Number:
Package Certification Date:
 
SMS or System Admin Name/Location:
SMS or System Admin Phone Number:
Package Distribution Date:

~Time job takes to run (<2 min., 3 - 5 min., >5 min.):
Software distribution method (Altiris/GPO):
 
Altiris Collection Name:
Windows XP Security Group Name:
 
Special software distribution instructions**:
 
**All Altiris packages should be configured to install as soon as possible and available to select for individual installation or through the Altiris Software Portal.  If other settings are required to distribute application via Altiris, specify requirements. (ie. mandatory installation with an expiration date)
--------------------------------
Packager (Source location):
--------------------------------
- .MSI Package
          \\Server\sharedx\packages\appname
 
- Application Files (if necessary)
          \\Server\winapps\appname
 
- Data Files (if necessary)
          \\Server\sharedx\appname
--------------------------------
Certifier (Location .MSI package is copied to):
--------------------------------
- .MSI Package
          \\Server\sharedx\packages\appname

- Application Files (if necessary)
          \\Server\winapps\appname
 
- Data Files (if necessary)
          \\Server\sharedx\appname
 
--------------------------------
Application Icon Properties
--------------------------------
Menu location of Icon             : (Start - Programs)
Application icon title            : Application Name
Icon                              : (path to icon)

Command Line                      : (example  c:\program files\appname\appname.exe)
Cmd Line Parms                    :
Working Directory                 : (c:\program files\appname)

Installation Procedures / Application Notes:
(Include any special installation instructions, explicit permission settings etc. required to run application)

Appendix D: Additional Resources

Windows Installer Service White Paper http://www.microsoft.com/technet/ prodtechnol/Windows2000Pro/ evaluate/featfunc/wispro.mspx
Windows Installer SDK http://www.microsoft.com/ downloads/details.aspx?FamilyID= e96f8abc-62c3-4cc3-93ad-bfc98e3ae4a3 &DisplayLang=en
Microsoft Virtual Labs Online http://www.microsoft.com/technet/ traincert/virtuallab/vista.mspx
Wise Solutions http://www.wise.com
Wise for Windows Installer 3rd Party Sites http://desktopengineer.com/
http://www.appdeploy.com/
http://www.myitforum.com/
XCEND Website http://www.xcendgroup.com/

Automated Certification Tool

An Automated Certification Tool has been developed to assist in the application packaging and certification process. This is a web-based tool available from XCEND and targeted for use by both packagers and certifiers. The automated certification tool runs through a series of checks which are compared against either the .MSI or .WSI file. Theses checks will provide insight to ensuring that an application package meets the customer defined application packaging standards. This tool should be used as a supplement to reviewing the application package in Wise for Windows Installer.

Packaging FAQ

Packaging FAQ's should be stored on a Microsoft Sharepoint site or better yet Altiris KnowledgeBase Articles if you own Altiris Helpdesk Solution and posted to assist packagers with problem .msi packages. It also allows packagers to share new ideas and resolutions to problems that occur daily. The FAQ's help the novice who has just started packaging in the customer environment and the experienced packager who may have forgotten a few details about a specific type of application to be packaged.

Appendix E: Using the Wise Packaging Team Web Site

Application Package Information

Location: http://[WPSServerName]/packaging/default.htm

Application Certification Tool

Location: http://[WPSServerName]/packaging/certify/default.htm

The purpose of this web site is to centralize information for packagers. New packager can visit a New Packagers page and get all the information they require to start packaging immediately. Packagers and can use the web site to reference information, script examples, package how-to, resolved packaging issues, FAQ, etc.

Application Packaging Best Practices for Windows XP: Part 4

Comments 3 CommentsJump to latest comment

riva11's picture

Scott thanks for your fantastic documentation, do you think to publish a PDF document with all parts included ?

Regards
PM

+2
Login to vote
Scott Hardie's picture

Riva,

All the White Papers I publish on Juice are available for download in .pdf format from our website at www.xcendgroup.com

Just go to the white paper download section.

Thanks again,

James "Scott" Hardie
Vice President of Technology Services
shardie@xcendgroup.com
http://www.xcendgroup.com

James "Scott" Hardie
Security Architect
Security Business Practice
Symantec Corporation
www.symantec.com
__________________________________
Office: (810) 588 9464
Mobile: (810) 588 9464<

0
Login to vote
riva11's picture

Great info, thanks again for your documentation.

Regards
PM

+1
Login to vote