Active Directory/Documentation/Packaging Notes
Upgrading Packages in Group Policy
- When upgrading a software package from another group policy, the new group policy must be ahead of the upgraded group policy in the link order (i.e. the new policy must have a higher precedence than the old policy).
Custom Actions
- For script based actions, I usually choose Stored in custom action.
- For most actions, it makes sense to sequence them in the Install Exec Sequence after all the other actions.
- MSI Custom Actions do not support the WScript object model (see the example below).
Set WShell = WScript.CreateObject("WScript.Shell")
instead of
Set WShell = CreateObject("WScript.Shell") - To only run action during installation, add the following condition:
NOT Installed - To only run action during uninstallation, add the following condition:
Installed AND REMOVE="ALL"
Converting To Cabs
- Use WiMakCab.vbs script
cscript C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Samples\SysMgmt\Msi\Scripts\WiMakCab.vbs /C /U /S /M <msi> <cab name>
- Notes:
File Table Attributes = 16384
cabarc -r N data.cab *
Query MSI Databse
- Use WiRunSQL.vbs
cscript C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Samples\SysMgmt\Msi\Scripts\WiRunSQL.vbs <msi> <sql>
- Change all INI entries to overwrite old entries.
cscript C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Samples\SysMgmt\Msi\Scripts\WiRunSQL.vbs <msi> "UPDATE `IniFile` SET `Action`='0' WHERE `Action`='1'"