MSI Script Sequences
Many times we interfere with the MSI script sequence in InstallExecute sequence, AdminExecuteSequence, advertised sequence, InstallUISequence, AdminUISequence. Following lists will be helpful in maintaining proper sequence.
It's not necessory that sequence number should be like this only but order is suggested to be the same.
InstallExecuteSequence
|
Action |
Condition |
Sequence |
|
LaunchConditions |
100 |
|
|
AppSearch |
400 |
|
|
CCPSearch |
NOT Installed |
500 |
|
RMCCPSearch |
NOT Installed |
600 |
|
ValidateProductID |
700 |
|
|
CostInitialize |
800 |
|
|
FileCost |
900 |
|
|
CostFinalize |
1000 |
|
|
SetODBCFolders |
1100 |
|
|
InstallValidate |
1400 |
|
|
InstallInitialize |
1500 |
|
|
AllocateRegistrySpace |
NOT Installed |
1550 |
|
ProcessComponents |
1600 |
|
|
UnpublishComponents |
1700 |
|
|
UnpublishFeatures |
1800 |
|
|
StopServices |
VersionNT |
1900 |
|
DeleteServices |
VersionNT |
2000 |
|
UnregisterComPlus |
2100 |
|
|
SelfUnregModules |
2200 |
|
|
UnregisterTypeLibraries |
2300 |
|
|
RemoveODBC |
2400 |
|
|
UnregisterFonts |
2500 |
|
|
RemoveRegistryValues |
2600 |
|
|
UnregisterClassInfo |
2700 |
|
|
UnregisterExtensionInfo |
2800 |
|
|
UnregisterProgIdInfo |
2900 |
|
|
UnregisterMIMEInfo |
3000 |
|
|
RemoveIniValues |
3100 |
|
|
RemoveShortcuts |
3200 |
|
|
RemoveEnvironmentStrings |
3300 |
|
|
RemoveDuplicateFiles |
3400 |
|
|
RemoveFiles |
3500 |
|
|
RemoveFolders |
3600 |
|
|
CreateFolders |
3700 |
|
|
MoveFiles |
3800 |
|
|
InstallFiles |
4000 |
|
|
DuplicateFiles |
4100 |
|
|
PatchFiles |
4200 |
|
|
BindImage |
4300 |
|
|
CreateShortcuts |
4500 |
|
|
RegisterClassInfo |
4600 |
|
|
RegisterExtensionInfo |
4700 |
|
|
RegisterProgIdInfo |
4800 |
|
|
RegisterMIMEInfo |
4900 |
|
|
WriteRegistryValues |
5000 |
|
|
WriteIniValues |
5100 |
|
|
WriteEnvironmentStrings |
5200 |
|
|
RegisterFonts |
5300 |
|
|
InstallODBC |
5400 |
|
|
RegisterTypeLibraries |
5500 |
|
|
SelfRegModules |
5600 |
|
|
RegisterComPlus |
5700 |
|
|
InstallServices |
VersionNT |
5800 |
|
StartServices |
VersionNT |
5900 |
|
RegisterUser |
6000 |
|
|
RegisterProduct |
6100 |
|
|
PublishComponents |
6200 |
|
|
PublishFeatures |
6300 |
|
|
PublishProduct |
6400 |
|
|
InstallFinalize |
6600 |
|
Action |
Condition |
Sequence |
|
CostInitialize |
800 |
|
|
FileCost |
900 |
|
|
CostFinalize |
1000 |
|
|
InstallValidate |
1400 |
|
|
InstallInitialize |
1500 |
|
|
InstallAdminPackage |
3900 |
|
|
InstallFiles |
4000 |
|
|
InstallFinalize |
6600 |
AdvtExecuteSequence
|
Action |
Condition |
Sequence |
|
CostInitialize |
800 |
|
|
CostFinalize |
1000 |
|
|
InstallValidate |
1400 |
|
|
InstallInitialize |
1500 |
|
|
CreateShortcuts |
4500 |
|
|
RegisterClassInfo |
4600 |
|
|
RegisterExtensionInfo |
4700 |
|
|
RegisterProgIdInfo |
4800 |
|
|
RegisterMIMEInfo |
4900 |
|
|
PublishComponents |
6200 |
|
|
PublishFeatures |
6300 |
|
|
PublishProduct |
6400 |
|
|
InstallFinalize |
6600 |
|
Action |
Condition |
Sequence |
|
FatalErrorDlg |
-3 |
|
|
UserExitDlg |
-2 |
|
|
ExitDlg |
-1 |
|
|
LaunchConditions |
100 |
|
|
PrepareDlg |
140 |
|
|
AppSearch |
400 |
|
|
CCPSearch |
NOT Installed |
500 |
|
RMCCPSearch |
NOT Installed |
600 |
|
CostInitialize |
800 |
|
|
FileCost |
900 |
|
|
CostFinalize |
1000 |
|
|
WelcomeDlg |
NOT Installed |
1230 |
|
ResumeDlg |
Installed AND (RESUME OR Preselected) |
1240 |
|
MaintenanceWelcomeDlg |
Installed AND NOT RESUME AND NOT Preselected |
1250 |
|
ProgressDlg |
1280 |
|
|
ExecuteAction |
1300 |
|
Action |
Condition |
Sequence |
|
FatalErrorDlg |
-3 |
|
|
UserExitDlg |
-2 |
|
|
ExitDlg |
-1 |
|
|
PrepareDlg |
140 |
|
|
CostInitialize |
800 |
|
|
FileCost |
900 |
|
|
CostFinalize |
1000 |
|
|
AdminWelcomeDlg |
1230 |
|
|
ProgressDlg |
1280 |
|
|
ExecuteAction |
1300 |
This information can also be found: http://msdn.microsoft.com/en-us/library/aa372038%2... and http://msdn.microsoft.com/en-us/library/aa369500%2...
The Endpoint Management Community Blog is the perfect place to share short, timely insights including product tips, news and other information relevant to the Endpoint Management community. Any authenticated Connect member can contribute to this blog.
Comments 1 Comment • Jump to latest comment
What were you trying to achieve in terms of copying and pasting the InstallExecuteSequence tables? I'm just wondering since you can easily look at these in the msi tables anyway, were you trying to explain something?
Would you like to reply?
Login or Register to post your comment.