Sequencing an application with the Microsoft Application Virtualization (App-V) Sequencer, can be tricky business. However, you can greatly improve the quality of your sequenced applications, by following certain best practices. This will in turn improve your end user’s experience. This blog post is designed to provide tips and best practices for sequencing an application for App-V.
First, let’s start with applications that should not be sequenced. The applications below are ones that either cannot be sequenced due to the limitations of App-V, or the application is not a good candidate for sequencing due to other issues.
- Sequenced package over 4GB – It is possible to sequence an application that is larger than 4GB, but it must be able to be compressed to at least 4GB. The SFT file, which contains application content, is limited to 4GB.
- Applications that start services at boot time – Startup services cannot be sequenced because App-v requires a logged on user to initiate the launch of an application.
- Applications that require device drivers – App-v does not support the sequencing of drivers. This can be bypassed by installing the driver locally on the target machine.
- Applications that are required by several applications for information or access – i.e. an application that would interact with more than one program
- Applications that are a part of the OS – e.g. Internet Explorer
- Applications that use COM+ – Because COM+ is dynamic and happens at runtime, there is no way for the sequencer to capture this information.
- COM DLL surrogate virtualization – i.e. DLLs that run in Dllhost.exe
The most important part of application sequencing is getting your environment setup properly. If your sequencing environment is not properly setup, your application sequencing will suffer. Below is a list of best practices for setting up your sequencing environment.
- Always use a clean Operating System when sequencing applications. It should match the end users environment as close as possible.
- It is best to use a virtualized machine for sequencing. Any platform that will allow you to take snapshots, and rollback to previous states would work. This will prevent the need to rebuild the machine after every application sequenced.
- When using App-v Sequencer 4.6 non SP1 and below, be sure to configure a dummy printer as well as system and user based dummy ODBC connections. If you are using version 4.6 SP1 these will be created when you install the sequencer. You will still want to confirm they are setup properly.
Note: for more on this topic refer to my previous post, App-V Sequencer Preparation Scripts - If your end users will be using machines with UAC enabled, ensure that your sequencing machine also has UAC set to the same level.
Now that you have your environment setup, here are a few things to keep in mind prior to beginning the sequencing process.
- Shut down all running programs and stop all unnecessary services. This helps prevent against data being captured that is not relevant to the application being sequenced. Some common examples are listed below.
A. Windows Defender
B. Antivirus software
C. Disk defragmentation software
D. Windows SearchE.Microsoft Update
F. Any open Windows Explorer session
G. SMS Agent Host
H. Disk Defragmenter
I. Windows Media Player
Note:for more on this topic refer to my previous post, App-V Sequencer Preparation Scripts - Check for App-v Accelerators and Recipes to see if someone else has already sequenced the application. There is no need to reinvent the wheel if someone has already done it.
A. TechNet Gallery: App-V Package Accelerators – http://gallery.technet.microsoft.com/site/search?f%5B0%5D.Type=RootCategory&f%5B0%5D.Value=App-V&f%5B0%5D.Text=App-V
B. TechNet App-V Sequencing Recipe Forum – http://social.technet.microsoft.com/Forums/en-US/prescriptiveguidance
Once you have begun the sequencing process, following these tips can help ensure your sequencing goes smoothly.
- Always perform a full install. Do not select the “install on first use” option.
- Automatic updates should be disabled for the sequenced application.
- Once the install has finished, launch the application multiple times until it remains static during the startup.
Finally, the following are some useful post sequencing tips when you are modifying or customizing your packages.
- Only compress packages that exceed 4GB, or if the application will be streamed over a slow network.
- Check the Virtual Registry for unneeded entries and remove them from the sequenced application.
Below is a list of common registry entries which should be deleted from your package. Keep in mind that all applications are different, and some may require entries in these keys.
User
HKCUSoftwareMicrosoftEventSystem
HKCUSoftwareMicrosoftSystemCertificates
HKCUSOFTWAREMicrosoftTracing
HKCUSoftwareMicrosoftWindowsCurrentVersionInternet Settings
HKCUSoftwareMicrosoftWindowsCurrentVersionRun
HKCUSoftwareMicrosoftWindowsCurrentVersionRunonce
HKCUSoftwareMicrosoftWindowsCurrentVersionUninstall
HKCUSOFTWAREPolicies
Machine
HKLMHardware
HKLMSAM
HKLMSecurity
HKLMSoftwareMicrosoftEventSystem
HKLMSOFTWAREMicrosoftRpc
HKLMSoftwareMicrosoftSystemCertificates
HKLMSOFTWAREMicrosoftTracing
HKLMSOFTWAREMicrosoftWBEM
HKLMSoftwareMicrosoftWindowsCurrentVersionInternet Settings
HKLMSoftwareMicrosoftWindowsCurrentVersionRun
HKLMSoftwareMicrosoftWindowsCurrentVersionRunonce
HKLMSoftwareMicrosoftWindowsCurrentVersionUninstall
HKLMSOFTWAREPolicies
HKLMSystemCurrentControlSetControlTimeZoneInformation
HKLMSystemCurrentControlSetServicesDHCPHKLMSystemCurrentControlSetServicesEventlog - Only enable LOCAL_INTERACTION_ALLOWED if absolutely necessary.
- Check for unneeded files and folders.
Below is a list of common file and folders entries which should be deleted from your package. As with the registry entries, keep in mind that all applications are different and some may require these files or folders.
Files
Any files that refer to the sequencing machine or userAutoexec.bat
Cache files
Certificates not directly related to the application
Config.sys
Cookies
Install log files
Internet Explorer History
Pagefile.sys
Service Host LMHost files
User.dat
Folders
%TEMP% folders
C:WINDOWSCSC
C:WINDOWSPrefetch
C:WINDOWSrepair
C:WINDOWSSystem32appmgmt
C:WINDOWSSystem32CatRoot
C:WINDOWSSystem32CCM
C:WINDOWSSystem32Config
C:WINDOWSSystem32dllcache
C:WINDOWSSystem32wbem
C:WINDOWSTasks