troubleshooting the windows installer
DESCRIPTION
A presentation by Bob Kelly from the 2007 Microsoft Management Summit about troubleshooting Windows Installer (MSI) installations.TRANSCRIPT
Troubleshooting the Troubleshooting the Windows Installer Windows Installer
Bob KellyBob KellyFounder: AppDeploy.comFounder: AppDeploy.com
SW36SW36
Bob Kelly
AppDeploy Libraryhttp://www.appdeploy.com/library
Windows Vista communityhttp://www.realtime-vista.com
Author and editor for several books, articles and papers on the topics of scripting and desktop administration…
http://www.bkelly.com
Overview
Interpreting Errors
Controlling Logs
Enabling Logging
Reading Logs
Troubleshooting Tools
Common Errors
Interpreting ErrorsInterpreting Errors
The errors reported by Windows The errors reported by Windows Installer are internal errorsInstaller are internal errors
Keep a print out of the errors and Keep a print out of the errors and their definitions.their definitions.
Microsoft Windows SDK (Vista) DocumentationMicrosoft Windows SDK (Vista) DocumentationWin32 and COM Development > Administration and Win32 and COM Development > Administration and Management > Application Installation and Servicing Management > Application Installation and Servicing > Windows Installer > Windows Installer Reference > > Windows Installer > Windows Installer Reference > Error Reference > Windows Installer Error MessagesError Reference > Windows Installer Error Messages
MSDN Library OnlineMSDN Library Onlinehttp://msdn2.microsoft.com/en-us/library/http://msdn2.microsoft.com/en-us/library/aa372835.aspxaa372835.aspx
AppDeploy Online ReferenceAppDeploy Online Referencehttp://www.appdeploy.com/msierrors/http://www.appdeploy.com/msierrors/
Controlling LogsControlling Logs
Logging Values (voice warm up)Logging Values (voice warm up)VV = Verbose output = Verbose output
O O = Out of disk space messages= Out of disk space messages
II = Status messages = Status messages
CC = Initial UI parameters = Initial UI parameters
EE = All error messages = All error messages
WW = Non-fatal warnings = Non-fatal warnings
A A = Startup of actions= Startup of actions
RR = Action-specific records = Action-specific records
MM = Out of memory or fatal exit information = Out of memory or fatal exit information
UU = User requests = User requests
PP = Show properties = Show properties
++ = Append to existing file = Append to existing file
! ! = Empty the logging cache= Empty the logging cache
Verbose LoggingSample with
Sample without
MSI (c) (CC:8C) [14:46:35:671]: Doing action: AppSearchMSI (c) (CC:8C) [14:46:35:671]: Doing action: AppSearchAction 14:46:35: AppSearch. Searching for installed applicationsAction 14:46:35: AppSearch. Searching for installed applicationsAction start 14:46:35: AppSearch.Action start 14:46:35: AppSearch.MSI (c) (CC:8C) [14:46:35:671]: Note: 1: 2262 2: AppSearch 3: -2147287038 MSI (c) (CC:8C) [14:46:35:671]: Note: 1: 2262 2: AppSearch 3: -2147287038 Action ended 14:46:35: AppSearch. Return value 1.Action ended 14:46:35: AppSearch. Return value 1.MSI (c) (CC:8C) [14:46:35:671]: Doing action: LaunchConditionsMSI (c) (CC:8C) [14:46:35:671]: Doing action: LaunchConditionsAction 14:46:35: LaunchConditions. Evaluating launch conditionsAction 14:46:35: LaunchConditions. Evaluating launch conditionsAction start 14:46:35: LaunchConditions.Action start 14:46:35: LaunchConditions.MSI (c) (CC:8C) [14:46:35:687]: Note: 1: 2262 2: LaunchCondition 3: -MSI (c) (CC:8C) [14:46:35:687]: Note: 1: 2262 2: LaunchCondition 3: -2147287038 2147287038 Action ended 14:46:35: LaunchConditions. Return value 1.Action ended 14:46:35: LaunchConditions. Return value 1.
Action 14:48:40: AppSearch. Searching for installed applicationsAction 14:48:40: AppSearch. Searching for installed applicationsAction start 14:48:40: AppSearch.Action start 14:48:40: AppSearch.Action ended 14:48:40: AppSearch. Return value 1.Action ended 14:48:40: AppSearch. Return value 1.Action 14:48:40: LaunchConditions. Evaluating launch conditionsAction 14:48:40: LaunchConditions. Evaluating launch conditionsAction start 14:48:40: LaunchConditions.Action start 14:48:40: LaunchConditions.Action ended 14:48:40: LaunchConditions. Return value 1.Action ended 14:48:40: LaunchConditions. Return value 1.
Methods to Enable Logging
MSI Command Line
EXE Command Line
From EXE INI File
From System Registry
From Group Policy
MSI Command Line LoggingMsiexec.exe /i <msipackage> /lv* c:\
logfile.txt /qb
Msiexec.exe /i winzip9.zip /lv* c:\logs\winzip9.log /qb
EXE Command Line Loggingsetup.exe /v"/L*v <logfile> /qb"
setup.exe /v"/L*v \“c:\logs\winzip9.log\" /qb"
EXE/INI Triggered Logging
setup.exesetup.exe /settings <path to custom INI>
[Logging][Logging]Type=v*Type=v*Path=c:\logsPath=c:\logs
Registry Triggered LoggingSubkey: HKLM\Software\Policies\
Microsoft\Windows\Installer
Value:Logging (REG_SZ)
Data:voicewarmup
Policy Triggered Logging
Reading LogsReading Logs
Use the find function to locate Use the find function to locate instances of the keyword instances of the keyword ““errorerror””Installer log return codes for logged Installer log return codes for logged actionsactions
00 = Action not invoked; may not exist = Action not invoked; may not exist
11 = Completed actions successfully = Completed actions successfully
22 = User terminated prematurely = User terminated prematurely
33 = Unrecoverable error occurred = Unrecoverable error occurred
44 = Sequence suspended, to resume later = Sequence suspended, to resume later
Windows Installer ToolsWindows Installer Tools
WiLogUtlWiLogUtl
Windows Installer Cleanup UtilityWindows Installer Cleanup Utility
MSIZAPMSIZAP
ORCAORCA
Obtaining Tools
Windows SDK for Windows Vista and .NET Framework 3.0 Runtime Components
Choose: Developer Tools > Windows Development Tools > Win32 Development Tools
http://download.microsoft.com/download/a/7/7/a7767f09-0136-4a96-a1f8-276bf0ee31fa/Setup.exe
Windows Installer SDK (v1)http://www.microsoft.com/downloads/details.aspx?FamilyID=e96f8abc-62c3-4cc3-93ad-bfc98e3ae4a3&DisplayLang=en
AppDeploy.comhttp://www.appdeploy.com/techhomes/windowsinstaller.asp
WiLogUtl
Helps make sense of Windows Installer Error logs
Using WiLogUtilUsing WiLogUtil
Windows Installer CleanupWindows Installer CleanupGUI Interface for MSIZAP
http://http://support.microsoft.cosupport.microsoft.com/kb/290301m/kb/290301
MSIZAPMSIZAPEliminates all traces of Windows Installer data from the local Eliminates all traces of Windows Installer data from the local
machinemachine
T T = remove all info for given product code= remove all info for given product code
P P = remove In-Progress key= remove In-Progress key
S S = remove Rollback Information= remove Rollback Information
A A = for any specified removal, change ACLs to Admin Full Control= for any specified removal, change ACLs to Admin Full Control
WW = perform removal for all users (default is for current user only) = perform removal for all users (default is for current user only)
MM = remove managed patch registration info = remove managed patch registration info
GG = remove orphaned cached Windows Installer data files for all users = remove orphaned cached Windows Installer data files for all users
L L = remove corrupted source list information= remove corrupted source list information
! ! = force a positive response to any verification prompts= force a positive response to any verification prompts
* * = remove all Windows Installer folders and registry keys; adjust = remove all Windows Installer folders and registry keys; adjust shared DLL counts; stop Windows Installer serviceshared DLL counts; stop Windows Installer service
/nologo /nologo = Do not display the logo message. This should be the last = Do not display the logo message. This should be the last optionoption
ORCA
More like the WordPad vs. the Notepad of Windows Installer Editorshttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/msi/setup/orca_exe.asp
Can be used to perform MSI validation Can be used to perform MSI validation
Supports working with merge modulesSupports working with merge modules
Transform creationTransform creation
Indicates any changes made by a Indicates any changes made by a transformtransform
ORCA Features for ORCA Features for TroubleshootingTroubleshooting
Common Errors
Problems with Windows Installer
MSI packages that require Setup.exe
Understanding Application Log Entries
Inaccessible Network Location
Fatal Error During Installation
Invalid Source Location
Common Custom Action Problems
Broken Windows InstallerBroken Windows Installer
Reregister the Windows Installer Reregister the Windows Installer serviceservice
msiexec /unregistermsiexec /unregister
msiexec /regservermsiexec /regserver
Reinstallation or upgrade to latestReinstallation or upgrade to latest
Error 1719: Error 1719: ““The Windows Installer service could not be accessedThe Windows Installer service could not be accessed””
Dealing with InstallScript
InstallShield Script (InstallScript) has many benefits for developers, but can be problematic for administrators due to requirement for setup.exe
Deploy ISSETUP.MSI beforehand
Remove the SETUP.EXE dependencyRemove custom action that performs the check using a transform fileSpecify a public property (ISSETUPDRIVEN) at the command line
Dealing with Dealing with InstallShield ScriptInstallShield Script
Application Log EntriesApplication Log Entries
Significant events are logged to the Significant events are logged to the Application Event LogApplication Event Log
Products and components are often Products and components are often identified by GUIDidentified by GUID
Lookup in RegistryLookup in Registry
Run install from command line:Run install from command line:msiexec /i <GUID>msiexec /i <GUID>
Interpreting Interpreting Application Event Log Application Event Log EntriesEntries
Inaccessible Network Location
Network location cannot be accessed
The CostFinalize action verifies all potential install folders in directory table
Inadvertent entriesEntries that do not start with a drive letterRoaming profile location on network in unavailable share
Error 1606: Error 1606: ““The feature identifier is not registered.The feature identifier is not registered.””
Fatal Error During InstallFatal Error During Install
Create verbose log to see actual Create verbose log to see actual problemproblem
One common cause: InstallShield One common cause: InstallShield Script DCOM securityScript DCOM security
Error 1603: Error 1603: ““A fatal error occurred during installationA fatal error occurred during installation””
1: Event 'E3250601' is created1: Event 'E3250601' is created1: GetInstallDriver, Can not find InstallDriver in ROT 1: GetInstallDriver, Can not find InstallDriver in ROT table, Return code = 0x800401e3table, Return code = 0x800401e31: [GUID]1: [GUID]1: ISMsiServerStartup Failure, Failed to create 1: ISMsiServerStartup Failure, Failed to create InstallDriver, Error = 0x8000401a Action ended InstallDriver, Error = 0x8000401a Action ended ISMsiServerStartup. Return Value 1603ISMsiServerStartup. Return Value 1603
Invalid Source LocationInvalid Source Location
Always know your sourceAlways know your source
Use DFS share or consistently Use DFS share or consistently available network driveavailable network drive
Beware of self extracting packages!Beware of self extracting packages!
Error 1603: Error 1603: ““No valid source could be found for product No valid source could be found for product ””
Common CA Problems
Windows Script Host is not availableWScript.CreateObjectWScript.QuitWScript.SleepWScript.Echo
Know your exit codes (any non-zero return is failure and will result in rollback)
Reference Materials
MicrosoftHow to use a setup log file to troubleshoot setup problems in Office
http://support.microsoft.com/kb/826511
AppDeploy Windows Installer Error Forum
http://www.appdeploy.com/messageboards/tt.asp?forumid=13
Windows Installer Error Reference http://www.appdeploy.com/msierrors
Windows Installer Tech Home http://www.appdeploy.com/techhomes/windowsinstaller.asp
Contact Bob Kelly
www.AppDeploy.com/Contact.asp
© 2007 Microsoft Corporation. All rights reserved.Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation.Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft,
and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.