Novell ZENworks Application Virtualisation
Good practice – tips and tricks
This document is not created by me, it is simply compiled by me (James Stewart) mostly from ATT material and with input from my colleague Ian Stimpson. Hopefully you find it useful!
Prior to installing ZENworks Application Virtualisation on your packaging machine you must first create the packaging machine. It is highly recommended that the packaging machine be a clean installation of the operating system that you will be distributing the virtual applications to. Because the packaging process uses snapshotting to determine differences, having a clean machine will reduce the amount of clean-up required for the application, and prevent unwanted dependency on the host machine.
In addition to installing only the operating system, it is good practice to standardise on a baseline service pack without any additional released patches, for instance WinXP SP3 or Win7 (without SP1 at the time of writing this document). The reason for not installing additional patches is in case you virtualise an application that depends on a patch being installed.
The following will help to reduce the amount of non-application related information is captured in your applications:
- Disable unneeded services. Because services are running constantly behind the scenes, any changes made by those services could be picked up as part of the application packaging process. As such it is recommended that you disable any unneeded services on your packaging machine. Some examples of services that you may wish to disable include:
- Automatic updates
- Performance and logs
- Windows time
You can refer to the Windows resource kit for more information on the function of most common Windows services.
- Disable UAC. Because most Vista / Win 7 applications will require that the application have administrative privileges, there is no reason that UAC will need to be enabled on the packaging machine. Instead you can disable UAC, so that no UAC information is changed at packaging time.
Additionally, to make it easier to revert changes to the packaging machine between packaging operations, it is recommended that you implement your packaging workstation as a virtual machine. There are many whole machine virtualisation solutions available. The most popular desktop virtualisation solutions are VMware Workstation (requires a license), VirtualPC (requires a license) and Virtualbox (open source edition is free). By using a virtual machine you can create a virtual machine snapshot of the clean machine after you have created your initial base snapshot for the packaging tool. This allows you to revert back to the clean state with a single mouse click.
In addition to implementing these guidelines, as you learn more about the Windows registry and file system, it is recommended that you take the time to clean up your virtual application after performing the initial snapshot.
Windows Background Processes
To ensure that you do not capture many common changes that occur in the background on Windows, it is important to build your base repackaging machine with as many background processes disabled as possible.
These processes include the following:
- IP addressing
Your repackaging machine should use a static IP address. By setting a static IP address, you ensure that the address does not change during the repackaging process. If the IP addressing information does change during repackaging, the new address is added to your software package. If you decide not to use a static IP address, you should ensure that any changes made to the HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces key are removed from the software package before distribution.
- Power saving
Make sure you delete all power profiles and disable standby. This prevents the machine from changing power modes during the installation. If this occurs during the installation, it results in undesirable registry settings being added to your software package.
Besides power saving, make sure you disable hibernation support. This prevents the machine from accidentally hibernating during the repackaging process.
- Personalised menus
Both Windows 2000/XP and Internet Explorer include support for personalised menus. These menus “learn” your habits and then hide the menus you do not frequently use. However, to do this, information is being consistently written to the registry and to the file system to build your personalised menus. Generally, you do not want these personalised menu settings to be included as part of the software distribution process.
Make sure you disable the following personalised menus:
- - Windows personalised menus
To disable Windows personalised menus, set the following registry information:
Value: IntelliMenus (REG_DWORD)
- - Internet Explorer personalised menus
To disable Internet Explorer personalised menus, set the following registry information:
Value: FavIntelliMenus (REG_SZ)
- Recent documents
Disable tracking of recently opened documents. To do this, simply go to the properties of the Start Menu and disable Recent Documents.
Windows XP includes a feature called PreFetch. This feature tracks the dependencies of executables when they load and notes this information. The next time the application is launched, these files can be found and loaded faster. This information is also used during defragmentation to organise files to be loaded quickly when PreFetch is set on registry settings and file systems. Entries are written each time an executable is launched. Because this information is automatically implemented the first time the user runs the application on his or her machine, you generally do not want to distribute the PreFetch information as part of the application installation.
- To disable PreFetch, set the following registry information:
Value: EnablePrefetcher (REG_DWORD)
- Time synchronisation
Windows XP and Windows 2003 server include built-in time synchronisation via the Windows Time service. This service automatically checks the time of an Internet server and verifies that the time of the workstation is the same. If this polling happens during the repackaging process, it can send the change in time to all of the workstations receiving the package. Because of this, you should disable time synchronisation by accessing the Internet Time tab on the properties of the Windows clock and disabling time synchronisation.
- Performance logging and alerts
Make sure that you delete or disable any existing counters or alerts in the Performance Counters administration tool. If you fail to do this, the perfdata.dat file or other performance counter files will be open and constantly updated as the installation progresses.
Deployment and Naming Conventions:
Choose a consistent naming convention for both deployment and build purposes. The launch icon doesn’t need to be any different from the standard application, and in most cases it is best practice for this to resemble standard applications so users won’t notice the difference.
Build: name: Application-version-OS-ZAVversion
Deployment name: vApplication-Version
Launch Shortcut / icon name: GroupWise
MSI Output: For MSI applications, provide Installation parameters preceded with a v Example: Novell\vApps\vGroupWise