- Microsoft Application Virtualization Advanced Guide
- Augusto Alvarez
- 1448字
- 2021-08-06 20:06:43
Overview of complex sequencing
Most likely, almost all of the existing applications in your current operating system support virtualization, but as we said, not all of them will have the same, straightforward process to get it working properly.
It is important to note that:
- Every application needs a deep understanding before capturing it: Understand the application's usage, dependent components, requirements, and interaction with the operating system. If we don't have these things cleared up, the sequencing process will not be an easy ride.
- App-V was not designed to solve incompatibility issues: Even though virtualizing an application in Windows XP can actually allow it to run in Windows 7, the focus of this technology is not to solve incompatibility among operating systems. We have some great examples of resolving problems like this using App-V, but it's not 100 percent guaranteed.
- Do not confuse "complex/advanced sequencing" with sequencing unsupported applications: There are some applications that are not supported for sequencing; even though by editing and adding some tweaks you could probably get them working, it will surely not be a more stable scenario. In this chapter, we will take a look at some of these tweaks that we can accomplish, for example, in the "applications with drivers" scenarios.
Applications not supported for sequencing
Here's a quick list of the applications not supported for sequencing that we should be aware of.
An interesting note about this list is that, as we are going to cover in this chapter, there are some workarounds we can apply in some applications which can be marked as "unsupported".
Note
Microsoft Office Communicator 2007 is not supported in App-V, but its successor, Microsoft Lync 2010, is. For more information about supportability in Lync 2010 check the following links:
Client virtualization support for the Lync 2010 client and the Lync 2010 Group Chat client: http://support.microsoft.com/kb/2560826
Client Virtualization in Microsoft Lync 2010: http://www.microsoft.com/download/en/details.aspx?id=21129
Regarding applications with shell extensions, Aaron Parker developed a great article about how to add this feature for App-V packages—Adding Shell Extensions to App-V Packages. Check http://blog.stealthpuppy.com/virtualisation/adding-shell-extensions-to-app-v-packages/.
Sequencing best practices
A good place to start would be the Best Practices for sequencing official knowledge base article from Microsoft (http://support.microsoft.com/kb/932137/en).
We can also find Microsoft Application Virtualization 4.6 SP1 Sequencing Guide at the Microsoft Download Center (http://www.microsoft.com/downloads/en/default.aspx).
I would like to mention some of the lessons I've learned so far, from the scenarios and applications I came across, when I had to work in sequencing and delivering virtualized applications:
- Understand application requirements and installation process before capturing: We should never start sequencing an application we've never installed before; we must review the requirements of each application and verify whether it needs other components or applications to use it. This will help us decide whether we need to use Dynamic Suite Composition or just one bundle with several applications.
- Understand application usage: Do we run the necessary tests once the application is running, to verify whether the user can actually use it?
One common error appearing in several App-V implementations (and I must say in several IT implementations) is that the deployment application tester does not complete the right "use cases" to verify the successful implementation of the application.
Ask an expert user which are the common activities a person executes once the application is launched; and include those in the moment of capturing it.
- Before you start sequencing, close other programs: The App-V Sequencer can capture changes generated from another application that is running. Some of those that might be a good idea to disable are:
- Antivirus software
- Windows Update
- Windows Defender
- Windows Search
- Disk defragmentation tools
- Software agents, such as, SCCM client, Dropbox, iTunes, Winamp, and so on
- Even though running an antivirus software on the sequencer machine is not a good idea, ensure that the computer is not infected with any type of malware. To do that without installing any antivirus, you can use the Microsoft Malicious Software Removal Tool from this link: http://www.microsoft.com/security/malwareremove/default.aspx.
This tool is represented only by an EXE file that is updated frequently by Microsoft and automatically scans your computer to detect any malware presence.
Note
In Appendix, we will review some tools and add-ons we can use to complement App-V, including a few that can allow us to browse inside an SFT file. This way we can check whether there's any malware present in an App-V package.
- Use Windows Virtual PC or any other virtualization platform for the App-V Sequencer machines, using a virtual machine snapshot. This will give us the chance to work with a clean operating system. Do not reuse the same sequencer image, where you install and remove applications. Use snapshots to revert the system to a "clean" state, so that each capture contains as much information about the application as possible.
Do not take the snapshot as soon as you complete the App-V Sequencer installation. The problem begins once the App-V Sequencer installation is completed, the App-V Sequencer launches. This assigns a unique GUID for the App-V package to be created. If you revert to the snapshot every time you want to capture a new application the same GUID will apply to the App-V application.
- Use the same operating system in the sequencer and client machines: Use the same baseline, updates, and existing applications. Microsoft does not officially support deploying applications in an operating system other than from where they were captured.
- If the client/sequencer operating system is Windows Vista or Windows 7, consistently maintain the User Account Control (UAC) option. If the client machines have this feature enabled, maintain the same option in the sequencer.
- Ideally, place the application folder in the root drive, to avoid any inconsistencies among clients, for example,
Q:\MyApp
. - Execute the application as many times as is necessary, to ensure that all the initial configurations that most applications perform, such as license agreement and file type associations, are completed successfully.
There are some applications that, as soon as they are launched, will start generating unnecessary information and could also attach some configuration, specific to the current user and/or computer. This kind of application should not be run during the sequencing process.
- In the Launch Phase of sequencing the application, the FB1 (primary feature block) is created; a best practice in this phase is launching the application and executing it's normal use. For example, if the sequenced application is Microsoft Word, open the application and type and misspell a word; this will use grammar correction features.
Also, consider not launching the application in the example mentioned earlier.
- Ensure that none of the application components are installed with the Install on First Use MSI option. Select either Run from My Computer (install this component) or Not Available (do not install this component).
- Remove Automatic Updates from a sequenced application. This could lead to deployment inconsistencies.
- Verify that the directory
%TMP%
or%TEMP%
has sufficient space to store temporary sequencing data. - Increase RAM when the capturing process seems slow: Sequencing an application is an intensive, memory-consuming process. If experiencing a slow process, consider adding more memory to the sequencer.
- If the application installation freezes or throws up notifications about errors encountered while the capturing process is running, re-run the sequencing procedure, even if the application seems installed correctly.
- Install a dummy printer in the sequencer before starting any application capture: This is another example of a common best practice for special applications that could install some virtual printers in the client operating system.
If we are using an application that includes a virtual printer in the installation process, and if this is the first printer in the operating system, there are going to be several registries and files created in the operating system; these will be included in the App-V package.
- Set user expectations: The use of virtualized applications could result in losing some capabilities, such as "right-click options", of the application. It is important for us to explain to the users the functionalities that the application will have and the ones that it won't.
- Create an App-V package accelerator when you consider necessary: Package accelerators are created to maintain captured configurations needed for particular applications; creating those will give you the chance to share with the community and help your peers and yourself, the next time you need to sequence that application.
- Document the sequencing process: Do not expect that you will always hold the responsibility for sequencing an application; a good explanation document will facilitate our work and our teammates. The documents created here could be a guide for a new sequence procedure when a new application version appears.