In a previous post(The Magic of Application Virtualization with VMware ThinApp), I have shown how to create a virtualized Mozilla FireFox using VMware ThinApp and how easy the process is. If you still not sure what ThinApp is or you just want a quick idea about how it works, then please make sure you read my previous post first(The Magic of Application Virtualization with VMware ThinApp). Though if you want to get a more optimized package then there is more guide lines to follow. In this post, I will document what you need to do to create a good machine to capture & build the ThinApp packages on. Following this article will help you build better ThinApp packages faster and give you a bit more repeatable results.
Before going into preparing the ThinApp Capture and Build machine details, its worth mentioning this post is a part of a larger VMware ThinApp series I am creating & below are the links to other VMware ThinApp posts in this series in case you were looking for one of these or interested to read about it as well.
Before talking about how to build and optimize your ThinApp Build and Capture machine (CnB), you will need to understand a bit more about the process of Application Virtualization with VMware ThinApp. The way VMware ThinApp build a Virtualized application is as follow:
1- ThinApp Capture the system before installing the application. It scan which files and registry records are there on the system before you installed your application
2- You install your application
3- ThinApp Capture the system after installing the application and figure out which new files and registery points has been created by your application and take that and package it in a single executable.
– Use a clean Vanilla install OS. Looking at the process above, you probably had figured out that the cleaner and closer to vanilla install the Windows machines you are creating your ThinApps on the better. The less junk you have installed on the machine the faster your pre-scan and post-scan will run, but that is not all to it. If you have an application dependency which was already installed on the system before the pre-capture process, this dependency will not be captured in the package which will cause your ThinApp Application to fail. For this its best to use a clean Vanilla Windows installed machine rather than a machine you have already installed a ton of stuff on. The less stuff installed on the machine the better. Actually you should only install the OS and Windows Security updates(No IE7/IE8 or media player or the similar updates to be installed, no other program or items upgrade to be installed). Don’t install Antivirus, firewall, Intrusion detection or prevention system on the VMware ThinApp Capture and Build machine as these can interrupt the success of the process. Actually beside the required Windows Security updates don’t install any thing unless if you are running on a Virtual machine then install VMware Tools or equivalent for the VM to function.
– Use the lowest OS utilized in your environment. To make the ThinApp package compatible with all the different Windows variation in your environment, you will need to capture it on the lowest version running in your environment. This seems to be Windows XP SP2 in most environments. Windows XP SP2 with Win Installer 3.1 is normally my choice for the Build and Capture machine where I will only install Windows Security updates to it(Again No IE7/IE8 or Media player to be installed from Windows update site as they are not required)
– Use a Virtual Machine for your Capture & Build Machine. Although you can build ThinApp packages using a physical PC, I would definitely recommend using a virtual machine. If you look at the previous point, you always want to capture your package on the cleanest and most Vanilla installed operating system possible. If you create one of these then install one application, when you want to package the next one you will want to be able to revert back to the earlier vanilla install OS state before the installation of the first application. Snapshots technology available in most Virtualization platforms(VMware Workstation, vSphere, & the same) make that task a breeze. You will only have to build your Capture and Build workstation once and make it ready with all the optimization required, then you take a snapshot. Build your package then all you have to do is revert to your snapshot to make the machine totally ready for packaging your next application rather than having to build the Capture and Build machine from scratch or use annoying imaging software to achieve the same if you were to use a physical machine.
– Configure the system to Basic Behaviors. The below few Windows customization setting are highly recommended for your Capture and Build machine.
- Remove the Wallpaper & any screen saver used by the system
- Use Windows Classic Style
- Change Windows Visual effects to “Adjust for best performance”
- Disable Windows Firewall
- Disable Windows Updates
- Change your Folders settings to:
– Show Hidden Files & folders
– Unhide Extension for known file type
– Unhide protected operating system files
- Set Driver Signing to IGNORE for system (Recommended) (If using Windows 7) (Gpedit => user configuration => System => Driver Installation => Code Signature for Driver)
- Clear out all %TEMP%, C:\TEMP, C:\WINDOWS\TEMP, and other misc folders and Recycle Bin
– Shutdown the machine before taking snapshot. If you end up following the recommendation and use a virtual machine, then after preparing it and optimize it with the above settings and any desired settings its recommended to shutdown the VM prior to taking a snapshot as this will save you from having to snapshot memory as well ensure your machine is snapshot in a consistent state.