Wisescript as a Packaging Utility #2
Wisescript and SMS Installer were both mainstream packaging tools prior to the MSI age, and Wisescript continues to be used for authoring custom actions in Wise Package Studio, and as a standalone 32 bit installer. However, Wisescript can also be used to create simple utilities which can help in many application packaging tasks.
The majority of vendor installs are now in MSI format, and thus the packaging process tends to be less about capture and more about transform creation. In many cases, the simple ORCA editor is perfectly adequate for generating transform files to customize installs, or editing existing vendor transforms. However, many applications create user registry entries when first run, often requiring user input, and the application packager has to incorporate these keys (correctly configured) into the vendor installation, so that no user input is required.
Installing HKCU keys when running a manual installation is quite simple – just add to the registry table. However, when deploying an application using a service based installer, such as SMS, Altiris DS or NS, or SCCM, the user registry hive of the eventual user(s) is not available at the time of installation. In these situations, the use of MSI self healing or Active Setup will ensure the correct deployment of user registry keys, using either an advertised entry point, or during login, respectively.
Authoring a VBScript which will install HKCU registry keys is quite simple, but gets progressively more time consuming as the size of the REG file grows. This is where the power of Wisescript can be leveraged to automate the process of authoring a suitable VBScript.
The attached ZIP file contains the source Wisescript and the compiled EXE of a utility which can be passed the source REG file, and automatically generate a VBScript. The VBScript can then be included in the transform for the vendor MSI, so that the required configuration entries are automatically created during self healing or active setup operations. This script does have some limitations, for example, it cannot handle DWORD values greater than 7FFFFFFF due to the math limitations within wisescript, and REG_MULTI_SZ and REG_BINARY types are not handled at all. However, the bulk of HKCU entries required by packages tend to be REG_SZ or REG_DWORD types, so the usefulness of this tool is generally high.
The attached ZIP also includes a documented example using ORCA.