Microsoft partner of the year icon

 

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.

  1. Always use a clean Operating System when sequencing applications. It should match the end users environment as close as possible.
  2. 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.
  3. 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
  4. 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.

    1. 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 Search

      E.

      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
    2. 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.

  1. Always perform a full install.  Do not select the “install on first use” option.
  2. Automatic updates should be disabled for the sequenced application.
  3. 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.

  1. Only enable LOCAL_INTERACTION_ALLOWED if absolutely necessary.
  2. Only compress packages that exceed 4GB, or if the application will be streamed over a slow network.
  3. 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
    HKLMSystemCurrentControlSetServicesDHCP
    HKLMSystemCurrentControlSetServicesEventlog
  4. 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 user
    Autoexec.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

Additional Resources: For more information on App-V, check out the links below.

App-v on TechNet – http://technet.microsoft.com/en-us/appvirtualization/
The Application Virtualization Forum – http://www.appvirtguru.com/
A Failure To Launch tool – http://www.tmurgent.com/appvirt/FTL/Ftl.aspx
Aaron Parker’s App-V Blog – http://blog.stealthpuppy.com/tag/app-v/
MyITForum – http://myitforum.com/myitforumwp/category/virtualization/app-v/