Diagnostics in the App-V 4.6 SP1 Sequencer

About 12 months after the initial release of App-V 4.6, Microsoft released the first Service Pack of version 4.6 of its Application Virtualization product. App-V 4.6 SP1 covers many exciting new features and the most interesting part of it is that practically all of them are around the sequencer! As far as I know this is the first time in the history of App-V that so much effort and improvement is done only in the tool to transform traditional applications into virtual ones. In this post I will address one of the features I like the most and have been asking for and talking about for years: internal diagnostics.

Most organizations turn to App-V because they want to reduce the Total Cost of Ownership (TCO) of their IT infrastructure. For App-V this cost efficiency lies in the fact that the process of creating virtual applications is simplified compared to traditional applications. Traditional applications are more difficult to create because they make assumptions about their execution environment and make changes to the target system, which could potentially decrease the stability of the system or cause other applications to malfunction. Virtual applications however never make changes to the system and their dependencies can be either virtualized together with the main application or suited as a separate virtual application.

But as with any piece of technology, App-V also has its limitations. Some applications, or parts of an application, may not work correctly when they have been virtualized. Applications that are tightly integrated with the operating system or for example use COM+ or kernel-level drivers, contain components that are not supported with App-V. The issue with all previous versions of the sequencer is that to know that an application has such components, you’d have to virtualize and test it on a target machine. This means that you’ve already went through the entire virtualization process.

Service Pack 1 of App-V has been altered just for this scenario. When the sequencer notices that the applications uses unsupported components it will bring this to your attention during the sequencing process. This way you don’t have to go through the process of testing and troubleshooting the application only to find out it can’t be virtualized. The following possible issues are detected by the sequencer:

  • Drivers
  • COM+
  • SxS Conflicts
  • Shell Extensions

clip_image002

Picture 1: 7zip uses shell extensions which were reported by the sequencer.

Another great addition to the sequencer’s intelligence is that it also gives you an extensive report of files and registry keys that were excluded from the package. With earlier versions you could spend a lot of time figuring out why the application was running on your sequencer machines and wasn’t running on your target machines. This information is not only presented during the sequencing process but it’s also saved as report.xml in your project directory for later reference.

clip_image004

Picture 2: Google Chrome installs its main executable in an excluded directory, which was reported by the sequencer.

When you are updating an application and the sequencer notices that the machine you are currently running on does not have the same baseline as the one you created your sequence on, it will give you information about these differences. System differences might influence the way the application is behaving, which is not preferred. If you think the application might have issues with these differences, you can change the system accordingly. The sequencer looks in your Add/Remove Programs control panel applet to find installation differences.

clip_image006

Picture 3: The .NET Framework was updated compared to the version that was installed on the machines where the sequence was created on.

Improving the success rate of virtual applications can also be done before the sequencing process. Microsoft has summarized many best practices in the whitepaper [Microsoft Application Virtualization 4.6 Sequencing Guide; http://bit.ly/SeqWp46Sp1]. However more than once, inexperienced people are not familiar with these best-practices and run into trouble during the rest of the process. The App-V 4.6 SP1 sequencer checks most of the common best-practices prior to starting the sequencing process.

It will warn you when certain services are running that can negatively influence your virtual application because they can lock certain files (like Windows Defender or Windows Search) or because they may update your system in the background (like Windows Update or the Configuration Manager client). If these changes accidently end up in your sequence it may become unnecessary large, slow or even unusable. But also pending reboots, non-reverted virtual machines or other running applications are reported.

clip_image008

Picture 4: Pending reboots, Windows Defender, Windows Search, Clean Machine, Disk Defragmenter, Configuration Manager Client; all were detected by the sequencer prior to starting the virtualization process.

Like I said in my introduction, I’m very excited by these new features because it will improve the predictability and success rate of App-V virtual applications. It definitely saves a tremendous amount of time troubleshooting applications because of malfunctioning.

Sequencing Office 2010; an add-on to Microsoft’s recipe

I have previously written a detailed article about virtualizing Microsoft Office 2010 with Microsoft App-V 4.6 and even included instruction video’s to show you how this can be done.

While the article and video’s were read by a lot of people, all this information was based on the beta version of Microsoft Office 2010 and the Microsoft Office 2010 deployment kit for App-V. As the beta expires October 31st (and I was still running it) I decided to give you a short update on my findings when I used the final version of all the products.

I used the Microsoft’s recipe to sequence Office 2010 as a base and will give you some additional information where I went my own path.

I used the 32bit App-V 4.6 RTM sequencer (4.6.0.1523) on a 32bit version of Windows 7 RTM along with the 32bit version of Microsoft Office 2010 and version 1 of the Microsoft Office 2010 deployment kit for App-V (which can be downloaded here). I’m going for the full integration scenario enabling as much “OS integration proxies” as possible (more info on these proxies in my previous post). If you are running a different configuration the results may vary.

Setting up the sequencer

Since the recipe mentions that the Microsoft Visual C++ 2008 SP1 package is needed for deployment to App-V 4.5 SP2, I included this in my sequencer installation even though it’s not a requirement of the sequencer software. The recipe was not really clear if the installation needed to be on the sequencer or on the client.

Compared to earlier material I also noticed an additional registry key that was not needed in the beta software. Add the value [VSL] to the multi-string value for the following registry key: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SoftGrid\4.5\Sequencer\SxSAppExtensions

The recipe says to “Set the Windows Update service to Disabled” while I actually Stopped and Disabled it.

Now before installing the Microsoft Office 2010 deployment kit for App-V and give yourself a lot of headaches, be sure to check that you have a Volume License Key of Microsoft Office 2010 as MSDN or TechNet keys are not supported for virtualizing Office 2010. I haven’t seen a MS knowledge base article for this but it has been discussed here.

I used the following commandline to in the deployment kit, but alter it to your needs:

msiexec /i OffVirt.msi ADDLOCAL=Click2runMapi,Click2runOWSSupp,Click2runWDS,OSpp,OSpp_Core PIDKEYS=VLK-KEY-GOES-HERE USEROPERATIONS=1

Begin Sequencing

The recipe mentions that you should install to Q:\Temp123.wxp but as one of my personal best practices I installed to Q:\Temp123.wxp\Microsoft Office 2010. If you follow my example you should be aware that a couple of steps along the way of the recipe this location is referred to as “Q:\Temp123.wxp” but you should include your subdirectory here as well.

A lot of registry tweaking is gone compared to the beta and we are left with adding and deleting two registry keys. I’ve included the reg commands below:

reg add "HKCR\CLSID\{9203C2CB-1DC1-482d-967E-597AFF270F0D}\TreatAs"
reg delete "HKCR\CLSID\{9203C2CB-1DC1-482d-967E-597AFF270F0D}\TreatAs" /va /f
reg add "HKCR\CLSID\{BDEADEF5-C265-11D0-BCED-00A0C90AB50F}\TreatAs"
reg delete "HKCR\CLSID\{BDEADEF5-C265-11D0-BCED-00A0C90AB50F}\TreatAs" /va /f

The recipe doesn’t mention changing the shortcut location, but I did that anyway to prevent conflict with my other virtualized versions of Office. I set shortcuts to: [\Programs\Microsoft Office 2010] instead of the default [\Programs\Microsoft Office].

I noticed a shortcut to Sharepoint outside this path and decided move that to the path above as well.

Now comes the heavy stuff: unfortunately you still need to add the proxy applications manually (there is one for MSOSync now) which is a lot of work and is very, very error-prone. Be careful, follow the recipe step by step (I kept the names default to not make a mistake here) and you’ll be ok.

I did not include the the Office Document Cache in the startup folder as mentioned in the recipe as I don’t like stuff to startup for me. If want you a “as-close-to-normal-installation-behavior” as possible you can choose to do so.

Additionally you also still need to manually sync all the OSD’s (although I still know that technically not all of them are used by the proxies, but to be safe I changed them anyway) which is also a lot of work and also very very error-prone. Copy and paste will help you here but be careful for pasting typos or double spaces or something as it will cause issues on the client. I used version 14.0.4755.1000 by the way.

Edit your sequence

The recipe doesn’t mention anything about cleanup of the sequence so I want to give you a heads-up of everything I removed from the sequence. Be sure that you save and test the basics of your package before you start throwing stuff out. Otherwise you have to do it all over again.

To make the installation smaller I deleted:

CSIDL_Windows\Installer (50Mb)
SFT_MNT\MSOCache (600 Mb)

This causes a reduction of the SFT file from 1422 Mb to 733 Mb (compressed SFT) which is a huge improvement!

Now I’m not saying that it’s a best practice to delete these cached copies of the original installation source, but I haven’t found any reason to keep them. The ability to support Windows Installer (MSI) repairs could be one of the reasons, but I don’t want them to occur in the first place. If repairs are running in the virtual environment I would definitely investigate the reason before throwing the package in production. Another reason could be that they are needed for maintenance of the sequence, for that case I’ve kept a original version from which I can do maintenance, but I’m not going to deploy a double sized package to my client for an unknown reason. If anyone has seen issues with it please let me know!

Something else I deleted from the virtual environment is the following:

USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings

Having Internet Explorer settings inside the virtual environment can cause al kinds of crazy behavior when the application is deployed to the client. In my opinion Internet settings should only be deliberately put in the package through a way of scripting of some kind and not be accidently snapped. Remove it so the application simply looks at local settings, not the virtualized ones. I come back to this subject in a future post.

I found some other installation residue which I ended up deleting. Could be that you don’t find them in your version as I’m not sure if they came from the setup or another situation at my sequencing client.

USER\S-1-5-18
USER\S-1-5-19
USER\S-1-5-20
USER\%SFT_SID%_Classes
CSIDL_Windows\PCHEALTH

Client deployment

On the client you need to install the Microsoft Office 2010 deployment kit for App-V just like you did on the sequencer, however the command lines are a little bit different.

I also noticed that when I copy and pasted the command line from the Microsoft recipe there were quotes (”) in it instead of quotes (") > I don’t know how to call them. I’ve spend many hours troubleshooting an MSIEXEC command line with quotes that I copied from a document (or website) which is why I changed all the quotes to this one (") as a precaution.

I ended up running two commandlines:

msiexec /i OffVirt.msi PIDKEYS=VLK-KEY-GOES-HERE USEROPERATIONS=1

msiexec /i OffVirt.msi ADDDEFAULT=Click2runOneNoteProxy,Click2runOutlookProxies,Click2runWDSProxy,Click2runOWSSuppProxies PACKAGEGUID={691293EC-D48B-4ADB-8457-07B5ADCF7282} PACKAGEVERSION=14.0.4755.1000 OUTLOOKNAME="Microsoft Outlook 2010" ONENOTENAME="Microsoft OneNote 2010" MAPISERVER="Microsoft Virtual Office Simple Mapi Proxy Server" VIRTUALSEARCHHOST="Search MAPI Protocol Handler Host" MLCFG32CPL="Virtual Mail Control Panel Item" OWSSUPPServer="Microsoft SharePoint Client Support Manager"

You could probably combine the two command lines to one, but I haven’t tested that myself.

Update: I got an email from Pierrick Brossin stating that you actually need to run the command lines twice. They can’t be combined to one. He also informed me that setting up the proxies through an MST doesn’t seem to be working as well. Thanks Pierrick for the heads-up!

So these are the pitfalls I found while sequencing Microsoft Office 2010 with Microsoft’s recipe. If you have any additional comment, please let me know. Hope it helps!

Is x64 the end of 16-bit DOS applications?

We have seen servers running 64bit versions of Windows for quite a while in our infrastructures and if they weren’t configured as Remote Desktop Servers (formally Terminal Server) this didn’t necessarily affect our end user applications. But since desktops and laptops are now easily equipped with more that 4Gb of RAM and the availability of the App-V x64 Client, we see an increasing demand for 64bit Operating Systems.

But is your application landscape ready to support x64? Because besides the obvious benefits of x64 there’s an obvious negative as well: the end of 16-bit DOS era…or is it?

One of my well respected colleagues and buddy Ruben Koene (@rubenkoene) was willing to share this excellent article of how he overcame this issue with one of our customers.

Follow his demonstration with one of the best (16-bit) business critical applications ever made: Prince of Persia.

Important: the steps below are specific for this application. Apply your own application specific details were necessary.

  1. If you don’t have Prince of Persia in your personal game collection you probably can download it from the internet. Unzip it (I used a folder on the desktop called “Prince”) on the sequencer machine.
  2. Next you need to download a program called DOSBOX. DOSBOX is a Dos-emulation program which you can download it here. Place the installer file also on your Sequencer computer.
  3. On the Sequencer computer start Microsoft Application Virtualization Sequencer and choose “Create a Package” (in this example I’m using version: 4.6)
  4. Fill in a package name (i.e. Prince of Persia) and if needed fill in the comments field and click [Next].
    clip_image002
  5. Click [Begin Monitoring] and create a folder by following Microsoft best practices.
    clip_image004
  6. First start the setup of DOSBOX and click [Next]
    clip_image006
  7. You probably want to uncheck “Desktop Shortcut” because the application will have it’s own shortcut. Click [Next]
    clip_image008
  8. Change “C:\Program Files “ so that it matches the directory that you selected when you started monitoring (for example, your destination folder can be Q:\PRINCE.001\DOSBox-0.74) And click the [Install] button
    clip_image010
  9. When installation is completed, click [Close]
    clip_image012
  10. Now copy the Dos application (we placed this on the desktop in step 1) to the directory you selected to install to. i.e. Q:\PRINCE.001\prince
    clip_image014
  11. Go to the start menu – All Programs – DOSBox-0.74 – Options – DOSBox 0.74 Options
    clip_image016
  12. With this action a new config-file is created. You can change a lot of settings in the config file, but we are only going to add custom actions to execute. For more information about the config file  read this article.
  13. Scroll to the bottom of config-file and add the following lines:
  14. MOUNT Q Q:\PRINCE.001\prince
    Q:
    Prince.bat

    clip_image018

  15. Note: If you want to start Prince of Persia without cheat-codes change Prince.bat to Prince.exe :-)
  16. Click File – Save As
    clip_image020
  17. Save the file as prince.conf in your prince-folder (i.e. Q:\PRINCE.001\prince\prince.conf)
  18. Close the config-file and click [Stop Monitoring]
  19. Click [Next]
  20. In the Configure Applications-wizard delete all the applications and click the add button.
  21. Add the following application path:
  22. “Q:\Prince.001\DOSBox-0.74\DOSBox.exe" –noconsole –conf  “Q:\PRINCE.001\prince\prince.conf"

  23. Change Q:\PRINCE.001 to your own installation path.
  24. The icon-file is stored in the prince-folder (prince.ico). Fill in as shown below and click [Add]
    clip_image022
  25. After adding the application click [Next]
  26. Launch the application and Prince of Persia will start in a window (ALT-ENTER for full screen, or change your config-file)
  27. Close Prince of Persia and click [Next]
  28. Click [Finish]
  29. Go to the Deployment-tab and change and change settings to match your environment.
    clip_image024
  30. Save your package and your done sequencing.
  31. Deploy on your client and have fun gaming errr running your Line of Business application ;-)

clip_image026

Virtualizing Office 2010 with App-V

Here is a nice post from Justin Zarb containing the steps and options to virtualize Microsoft Office 2010 with App-V.

In short. You can find the Office 2010 sequencing recipe guide here: http://support.microsoft.com/kb/983462

You can find the Office 2010 App-V Deployment Kit here: http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=479f12f2-5678-493e-bce1-682b3ece5431

And a pre-sequenced version of Office 2010 here: http://technet.microsoft.com/en-us/windows/ff603537.aspx

Another document describing the overal deployment options for Office 2010, including App-V can be found here:

Download details Deployment Options for Office 2010 

Please be aware that the App-V 4.6 client is necessary for full Office 2010 compatibility.

Microsoft Office 2010, more integration in App-V 4.6

I’ve been able to sequence every version of Microsoft Office I’ve ever come across. This goes back to Microsoft Office 95/97, 2000, but also more recent versions like Office 2003 and 2007. But I’m not writing this post to brag about this impressive list (ahum) and also not because I can now add Microsoft Office 2010 to that list as well. No, I’m writing this post because this time it was the first time that there was actually a significantly different approach in virtualizing Microsoft’s top product on collaboration, email, presentation and document management and other, often online, related services.

When I’m at a customer that are starting with application virtualization, they ask me frequently: “Ment, should we be virtualizing Microsoft Office?”

The answer to this question has always been “well, it depends…”

Technically you can sequence Microsoft Office just fine. The benefits of virtualizing Office includes running multiple versions of Microsoft Office on a single machine. Particularly useful in scenarios where organizations have LOB applications that are tied to specific, usually older, versions of the Office product. No more need for multiple computer running different versions of Office.

But there is a downside to this approach as well. The most often heard complaint from users is that not all features from Microsoft Office seem to be working, especially those that tie deep into the Operating System.

Now I’m not a heavy Office user and above all a technical guy. I find my way around the application. I start an Office application like Word, Excel, Powerpoint and Outlook from the start menu or from a file type association. I don’t mind that I can’t edit a document in Sharepoint, I just download en open and I don’t mind that I have to configure the mail settings through the virtual environment (how often does this change). On the other hand I do mind that Outlook Fast Search wasn’t working though, because I don’t seem to organize my stuff efficiently and this feature helps me a lot.

But I can understand that end users simply don’t understand this approach. All functionality in Microsoft Office simply needs to work. For these users Microsoft has been all ears. With the release of Microsoft Application Virtualization 4.6 and the Microsoft Office 2010 Deployment Kit for App-V these downfalls are now fixed, making the user-experience closer to natively installed than ever.

The Office Deployment Kit for App-V enables the following functionality while Office is running virtualized:

  • Extend your usage of virtual Office 2010 through improved SharePoint integration to Open, Save, Edit files.
  • Find your email items quickly with Outlook’s  Fast Search.
  • Connect to your inbox using Microsoft Outlook Send To functionality.
  • Print your documents directly to OneNote.
  • Find contents within your documents using Office Document Indexing.
  • Open Web based calendar items and RSS Feeds in Outlook.
  • Perform advanced mail configuration using the Virtual Mail Applet.

The Deployment Kit offers proxies to deliver the functionality above. These proxies are simply additional entry points to the virtual environment. Normally shortcuts, file type association etc. are providing these entry points, but because the above functionality is so tight with the operating system, additional entry points had to be created. They will simply pick up a request (an API) and send it to an application in the virtual environment.

When it comes to deployment scenarios, the following will be supported:

Microsoft Office 2010 Sequencer Operating System Deployment Kit on the Sequencer Client Operating System Required Deployment Kit on the Client Supported
32bit 32bit 32bit 32bit 32bit Yes
32bit 32bit 32bit 64bit 64bit Yes
32bit 64bit 64bit 64bit 64bit Yes
32bit or 64bit 64bit 64bit 32bit 32bit No, sequencing on 64bit requires 64bit Client
64bit 32bit 32bit 32bit 32bit No, 64bit software can’t be installed on 32bit OS
64bit 64bit 64bit 64bit 64bit Yes, but proxies will not work

In this post I will provide you with some guidance how to virtualize Microsoft Office 2010 based on information from Microsoft (Prescriptive Guidance for Sequencing Microsoft Office 2010 on Microsoft App-V 4.6), information on Technet and my personal experience.

I will go for the first scenario in the table (highlighted in green). You must use App-V 4.6 as the proxies are not available on App-V 4.5. For demonstration purposes I will install all of the Microsoft Office 2010 applications and setting up all of the proxies. You can adjust this to fit your own organizational needs.

Preparation

Sequencing preparation involves setting up a machine that is representative for and end user device in your environment. Microsoft offers best practices in that area and I do advise you to keep them in mind (and read the sequencing guide), because I will not cover these basics in this post. You will need to:

Other best practices include:

  • Disable and stop the Windows Update service (net stop wuauserv)
  • Normally you would disable the Windows Search service, but since we are explicitly are elevating this features, we leave it enabled.

Preparation also includes installing the Deployment Kit on a elevated command prompt and configured with some of the following parameters:

  • If activation of Microsoft Office 2010 is done through KMS activation:
    • PROFESSIONALPLUS=1, VISIOULTIMATE=1, PROJECTPROFESSIONAL=1 depending on which Office installation you are installing
    • KMSSERVICENAME and KMSSERVICEPORT
  • If activation of Microsoft Office 2010 is done through MAK:
    • Option 1: Volume Activation Management Tool (VAMT)
    • Option 2: PIDKEYS=”xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx”
    • USEROPERATIONS=0 if you want only Administrators to activate Office. USEROPERATIONS=1 if you want to let Non-administrators (e.g. Users) to activate Office.

I will be executing the following command:

msiexec /i OffVirt.msi PIDKEYS="xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx" USEROPERATIONS=1

Check out the video below how to prepare for sequencing Microsoft Office 2010:

Sequencing

Once you have prepared your sequencing machine for Microsoft Office 2010, it’s time to start sequencing. Installing Microsoft Office is pretty straightforward since I’m going to install all Office applications, but you can choose otherwise.

Start a New Package and give the package a descriptive name, like “Microsoft Office 2010”

The following actions should be done during monitoring:

  • Install Microsoft Office 2010 to an 8.3 directory on your mount drive (i.e. Q:\OFF2010.V01) or if you are following strict sequencing guidelines you might want to install in a subdirectory. You’d might not want to include spaces in this path, just to be sure. (i.e. Q:\OFF2010.V01\MsOffice)
  • Don’t select Install on First Use for any Office application. Either install or don’t install. I will be selecting the entire suite here just for demonstrating purposes.
  • The Office installation does not have to be activated during sequencing.
  • Start your preferred applications (like Word, Excel etc) and configure settings to fit your needs.
  • I personally like to change the shortcut location from "..\Start Menu\Programs\Microsoft Office" to "..\Start Menu\Programs\Microsoft Office 2010". This would make sure that the shortcuts don’t end up in the same area as a potential local (or other virtual) installation of Microsoft Office.

Execute the following registry commands. Make sure that start an elevated command prompt during monitoring:

reg add "HKLM\SOFTWARE\Microsoft\Windows\Windows Search\Preferences" /v "{4154494E-BFF9-01B8-00AA-0037D96E0000}" /t REG_DWORD /d "1" /f
reg add "HKLM\SOFTWARE\Microsoft\Windows\Windows Search\Preferences" /v "{C0A19454-7F29-1B10-A587-08002B2A2517}" /t REG_DWORD /d "1" /f
reg add "HKLM\SOFTWARE\Microsoft\Windows\Windows Search\Preferences" /v "{70fab278-f7af-cd11-9bc8-00aa002fc45a}" /t REG_DWORD /d "1" /f
reg add "HKLM\SOFTWARE\Microsoft\Windows\Windows Search\Preferences" /v "{c34f5c97-eb05-bb4b-b199-2a7570ec7cf9}" /t REG_DWORD /d "1" /f
reg add "HKLM\SOFTWARE\Microsoft\Windows\Windows Search\Preferences" /v "{0077B49E-E474-CE11-8C5E-00AA004254E2}" /t REG_DWORD /d "1" /f

Warning: the following commands hold registry keys for the 32-bit OS installation only. If you are sequencing 64-bit OS, you’ll need other registry key, see the Microsoft Recipe for more info.

reg add "HKCR\CLSID\{9203C2CB-1DC1-482d-967E-597AFF270F0D}\TreatAs"
reg delete "HKCR\CLSID\{9203C2CB-1DC1-482d-967E-597AFF270F0D}\TreatAs" /va /f reg add "HKCR\CLSID\{BDEADEF5-C265-11D0-BCED-00A0C90AB50F}\TreatAs"
reg delete "HKCR\CLSID\{BDEADEF5-C265-11D0-BCED-00A0C90AB50F}\TreatAs" /va /f

Also run the next registry commands, but be careful with copy and paste here, because the installation path and SFT_MNT drive is referenced. Be sure to change it to your situation:

reg add "HKCR\CLSID\{3FD37ABB-F90A-4DE5-AA38-179629E64C2F}\InprocServer32" /t REG_SZ /d "Q:\OFF2010.V01\VFS\CSIDL_PROGRAM_FILES\Microsoft Office\Office14\OWSSUPP.DLL" /f

reg add "HKCR\CLSID\{62B4D041-4667-40B6-BB50-4BC0A5043A73}\InprocServer32" /t REG_SZ /d "Q:\OFF2010.V01\VFS\CSIDL_PROGRAM_FILES\Microsoft Office\Office14\OWSSUPP.DLL" /f

reg add "HKCR\CLSID\{9203C2CB-1DC1-482D-967E-597AFF270F0D}\InprocServer32" /t REG_SZ /d "Q:\OFF2010.V01\VFS\CSIDL_PROGRAM_FILES\Microsoft Office\Office14\OWSSUPP.DLL" /f

reg add "HKCR\CLSID\{BDEADEF5-C265-11D0-BCED-00A0C90AB50F}\InprocServer32" /t REG_SZ /d "Q:\OFF2010.V01\VFS\CSIDL_PROGRAM_FILES\Microsoft Office\Office14\OWSSUPP.DLL" /f

The following need to be executed after monitoring (in the Configure Applications step of the App-V Sequencer wizard):

  • Add the following applications to enable the proxies:
    • Proxy MailTo
      • %commonprogramfiles%\microsoft shared\virtualization handler\MapiServer.exe
    • Proxy Virtual Search Host
      • %commonprogramfiles%\microsoft shared\virtualization handler\VirtualSearchHost.exe
    • Proxy Virtual OWSSupp Manager
      • %commonprogramfiles%\microsoft shared\virtualization handler\VirtualOWSSuppManager.exe
    • Proxy Virtual Mail Cpl
      • %windir%\system32\Control.exe Q:\OFF2010.V01\MsOffice\Office14\mlcfg32.cpl. Watch out here, there’s a link here that depends on your installation path. So be careful with copy and paste.
  • Not obligatory but I like these additional shortcuts to the virtual environment, because they might help me during troubleshooting and in other scenarios:
    • Command Prompt
      • %CSIDL_SYSTEM%\cmd.exe
    • Internet Explorer
      • %CSIDL_PROGRAM_FILES%\Internet Explorer\iexplore.exe
    • Internet Connections Cpl
      • %CSIDL_SYSTEM%\inetcpl.cpl. Might become handy to define proxy server connections.
  • By default the Add Applications wizard will create a shortcut for each added application. Because the proxies don’t need a shortcut, you can go ahead and remove that in the wizard.
  • I personally like to rename all proxy applications to start with a similar word, so they sort out neatly in the screen.
  • Make sure that the versions of all the Applications (including the proxies) are equal (for example: 14.0.4536.1000). You can change this in the Add Applications step of the wizard, but also manually change the OSD files after saving the entire project with Login Consultants OSD Editor.

Optionally you can define Primary Feature Blocks by launching each of the application during the Launch Application step of the sequence wizard.

When all monitoring is done you should do the following steps in the sequencer do the following:

  • Set the following registry key to “Merge with local”
    • HKEY_LOCAL_MACHINE\Software\Microsoft\Office\14.0
  • In each of the OSD’s add the LOCAL_INTERACTION_ALLOWED tag under SOFTPKG -> IMPLEMENTATION -> VIRTUALENV -> POLICIES -> LOCAL_INTERACTION_ALLOWED. Set the text to “TRUE”.
    • Alternatively you could save the project and edit the OSD’s through Login Consultants OSD Editor (registration required). This is what I would recommend!
  • Not mandatory but you can clean up your sequence as well. I would check out the following directories and decide whether or not to include them:
    • C:\Windows\Installer
    • Q:\MSOCache
  • You should also decide whether or not to Compress the package (I like to do so).

Save the project and you’re done sequencing! Check out these video where I demonstrate the actual sequencing steps.

Part 1/2

Part 2/2

Deployment

Once you have created the sequencing of Microsoft Office 2010 you can deploy it to a target machine.

Install Microsoft Application Virtualization Client 4.6 on the target machine. Depending on your infrastructure you should supply property values that fit your needs, which you can find here. For demonstration purposes I’m using a standalone configuration:

"setup.exe" /s /v"/qb-! SWICACHESIZE=\"6000\" AUTOLOADTARGET=\"NONE\" REQUIREAUTHORIZATIONIFCACHED=\"FALSE\" SWIFSDRIVE=\"Q\""

Install the Deployment Kit the same way it was installed on the sequencer. In my case:

msiexec /i OffVirt.msi PIDKEYS=xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx USEROPERATIONS=1

Then you need to activate the Deployment Kit proxies through the following command line:

msiexec /i OffVirt.msi ADDDEFAULT=Click2runOneNoteProxy,Click2runOutlookProxies,Click2runWDSProxy,Click2runOWSSuppProxies PACKAGEGUID={F5E9C7F8-1EF1-4486-AB9D-C491000695E9} PACKAGEVERSION=14.0.4536.1000 OUTLOOKNAME="Microsoft Outlook 2010 (Beta)" ONENOTENAME="Microsoft OneNote 2010 (Beta)" MAPISERVER="Proxy MailTo" VIRTUALSEARCHHOST="Proxy Virtual Search Host" MLCFG32CPL="Proxy Virtual Mail Cpl" OWSSUPPServer="Proxy Virtual OWSSupp Manager"

Be sure to alter the command line above with the following in mind:

  • PACKAGEGUID can be obtained from any OSD. It’s the value of GUID in the CODEBASE tag of the OSD file (don’t confuse this with the GUID in the SOFTPKG tag).
  • PACKAGEVERSION should match the application version used during sequencing
  • The values of the properties representing the proxies should match the names used during sequencing.

Add and load the virtualized version of Microsoft Office. I’m using command line for demonstration purposes and because of standalone deployment, but you can use the deployment model that fits your environment. More information on adding applications through the command line options of the client can be found here.

sftmime add package:"Microsoft Office 2010" /manifest "Microsoft Office 2010_manifest.xml"

sftmime load package:"Microsoft Office 2010" /sftpath "Microsoft Office 2010.sft"

Keep the following in mind when copying the command lines above:

  • Package should represent the name of the application that was used during sequencing (first step of the wizard).
  • Manifest should represent the name of the manifest file created by the sequencer.
  • Sftpath should represent the name of the SFT file created by the sequencer. By default the sequencer adds the version number of the package to this file (something like Microsoft Office 2010_5.sft).

Once you have deployed the Microsoft Office 2010 sequence to your machine you are ready to start using the product. Check out this last video where I demonstrate how to deploy Microsoft Office to a machine and start using it.

Closing thoughts

The Microsoft Office 2010 Deployment Kit for App-V does add tremendous functionality to the use of Microsoft Office running as a virtualized application. For a typical end-user the product reaches a level of confidence by overcoming some of missing functionality in earlier versions of the product. Especially the use of “Mail to”, “Fast Search” and “Sharepoint integration” make running Office virtualized very mature.

As an independent consultant I do still have some additional thoughts with this approach:

First of all the Deployment Kit for App-V was created for the exact purpose of overcoming the missing functionality described earlier in this article. It leverages integration from the Operating System (including Internet Explorer) to the virtualized Office product. This means that not all downsides of virtualizing the application can be overcome, one of them being integration with other applications.

Because other available applications (running installed or virtualized) don’t “see” the virtualized Office they can not integrate with it. More than often I see applications add toolbars or plugins in Excel or Word that simply won’t work if the product is running virtualized, unless…

  • The application is running virtualized itself and joined with the virtualized Office environment through App-V’s Dynamic Suiting Composition (DSC) technology.
  • If the application can’t or won’t be virtualized (for whatever reason) it can still be started “through” the virtualized environment of Microsoft Office. In my opinion this scenario however will create an administrative…well…challenge to say the least.

It would be really nice if Microsoft would focus on 3rd party integration in Office while running it virtualized. Starting with toolbars and plugins since I think that those are the biggest issue in organizations. Or maybe create something like a Software Development Kit (SDK) where other vendors could extend the Deployment Kit to make their product integrate better.

Secondly I would really like see not only the shortcomings in virtualizing Office to be fixed, but to create a more general layer for App-V so that other applications can benefit as well. Office is not the only product that installs Control Panel items you know or that creates customized URL protocol handlers. Indeed, Microsofts very own Live Meeting does this with the “meet” protocol.

Apparently Microsoft Office uses parts of the Operating System and Internet Explorer that are so tight, they can only be fixed by installing additional software on the OS, while installing software locally was what we are trying to avoid in the first place by using application virtualization.

Why not create a general layer on top of the OS (specifically for App-V) that would overcome some of the current limitations in the product? This layer could either be part of the OS (as a Windows feature?), be installed as an application virtualization additional layer (like the Deployment Kit) or even be part of the App-V client installation. This way it would be generally available for all products to benefit from.

With the release of Microsoft Office 2010 Deployment Kit for App-V we can conclude that Microsoft is listening to their customers and that these kind of thoughts do exist. As an MVP I will try to talk and share as much as I can with the Product Teams, making virtualizing applications even more commodity than it is already today.

Which brings me back to the initial question: “Ment, should we be virtualizing Microsoft Office 2010?”

My answer would still be “…it depends…”

MS Office 2010 Deployment Kit for App-V (beta) available

One of the biggest issues App-V customers run into when virtualizing (sequencing) the Microsoft Office Suite is the limitation of interaction between locally installed application/functionality and the virtual instance of the Office Suite. With this in mind Microsoft created the MS Office 2010 Deployment Kit for App-V which is available in beta version as of yesterday.

It consists of some code that needs to be installed on the Sequencer machine prior to Sequencing Office 2010 and some code that needs to be installed (yes, a real install) on each client device where you want the optimal interaction experience.

Some important notes:

  • It only works for Microsoft Office 2010
  • It only works with App-V 4.6 RC Client / Sequencer and later 
  • This will NOT solve ALL interaction/integration issues you potentially can run into when virtualizing Office.

The interaction possibilities that are fixed, are:

  • Fast search in virtualized Outlook 2010 using Windows Desktop Search
  • Ability for virtualized Office 2010 applications to open, edit, and save Office files hosted with Windows SharePoint
  • Search indexing support for Office file types
  • URL protocol redirection to virtualized Outlook 2010
  • Print to virtualized OneNote 2010

Click here for more information and the download of the deployment kit.

Thanks to Ivan de Mes for providing the info!

Windows Installer error 1719 while sequencing

I got this info from our internal forum and thought it was interesting enough to share with you.

When you are sequencing an application the Windows Installer service might give you an error during monitoring phase.

Error 1719. Windows Installer service could not be accessed. Contact your support personnel to verify that it is properly registered and enabled.

When the application is installed without the sequencer monitoring, the installation finishes without an error and the application works fine.

In this particular situation the sequencer was running Windows Server 2003 and was accessed remotely through a Remote Desktop Connection (mstsc.exe).

The solution to this issue is create a console RDP session to the sequencer machine instead of an regular RDP session. 

You can connect to a console session through the following command:

mstsc /console /v:<server>

Thanks to my colleagues for publishing and solving this issue!

update:
“mstsc /console” has been replaced with “mstsc /admin” on newer Windows Operating Systems (Windows 2008 and Windows Vista SP1 and up). So the correct syntax would then be:

mstsc /admin /v:<server>

Thanks Floris for pointing this out to me.

App-V Sequencing Recipe template

My collegae Falko Gräfe has a dedicated website (www.kirx.org) about App-V related information.

He recently pointed me to his latest publication, an App-V Sequencing Recipe template.

The “Sequencing How-to Template” collects lots of the information that might be important to re use an application package or to create a new App-V package based on an older how-to guide. It contains fields for each value that normaly has to be entered or modified during sequencing with space to make notes about unexpected tasks.

The original idea came from the old “SoftGrid Sequencing Recipe Template” that was provided by Softricity in the past and never seemed to be updated and published by Microsoft.

The template maps the different steps in the sequencing process (preparation, sequencing wizard, wrap up) to documentation paragraphs, fields and tables. So it’s easy to document and easy find information back.

Download the template and read more at source.

Using the “Security Descriptors” within the App-V 4.5 Sequencer.

Using Security Descriptors
When using the new App-V 4.5 sequencer, Security Descriptors are switched on by default.

But what is this security Descriptors function in the first place? How does it work? And is it of any use at all? In this article I will answer those questions.

What are Security Descriptors?
One of the big Advantages of SoftGrid always was that users could work with their applications like if they had Full Control rights. This was a huge advantage especially in Terminal Server environments where administrators usually put a lot of effort in getting applications to work on one hand and securing the Terminal Server environment on the other hand.

By enabling Security Descriptors during sequencing an application (switched on by default), permissions on the windows file system are “pulled into the bubble” (not the registry, thanks for the heads-up by Brian Kelly).  The sequencer always captures security descriptors during sequencing, but only with the Enforce Security Descriptors setting checked, the client enforces them on the file system drive at runtime.

So if a users group on the Sequencer had read rights on the D:\APP-X folder, these rights are stored in the Virtual Environment. Once streamed and run on the client, the user cannot edit in this particularly folder. In this manner you can set permissions on parts of the Virtual Environment and secure parts of being modified by a user.

How does it Work?
Like I mentioned before the enforcement of Security Descriptors is switched on by default. You can find the check box on the new Deployment tab of the Sequencer’s SFT-editor:

sec1

So if the check box is switched on the permissions are stored inside the virtual environment.

What’s the use?
Good question! Like I mentioned above, one of the biggest advantages of SoftGrid always was that users had sort of Full Control rights within their virtual environment. The advantage especially for Terminal server environments was huge.

I don’t see the advantage of switching the “Enforce Security Descriptors” setting on by default. I can imagine this option can be useful with some applications which need to have certain restricted permissions on parts of the virtual file system. For instance, some (badly written) applications need to have restrictions on parts of the virtual file system to ensure that settings don’t get corrupted or that .PKG files don’t grow excessively.

Because this situation only applies to some applications it is my opinion that the Security Descriptors should not be switched on for every application but just for the applications where you’re facing a problem that can be solved by using Security Descriptor Enforcement.

How to switch the enforcement off by default?
This is not too difficult. The first step is to create a default.sprj (if you do not already have one):  Launch the Sequencer, go to the tools menu and select options. On the options screen go to exclusion items and click on “Save As Default”.

sec2.jpg

I know this is a weird place for saving default settings. Don’t bother and just browse to the program directory of the Sequencer (by default  C:\Program Files\Microsoft Application Virtualization Sequencer) and open the default.sprj file. This is an XML file. Besides a lot of other settings, you can also set the Security Descriptors option in this file. Just set the value of the “UseSecurityDescriptors” option to “No” and you’re done.  

sec3.jpg

Support for .NET in Microsoft Application Virtualization 4.5 (App-V)

An article has come to my attention recently (whilst being available for some time) which addresses some issues in how to make the .NET framework available in conjunction with virtual applications.

Microsoft has made several architectural changes in the implementation of Microsoft Application Virtualization (App-V) 4.5 to ensure that the product is aligned with our roadmap for future innovation. One such change entailed moving the API intercepts from kernel mode into user mode. This change had a side-effect of changing the App-V compatibility with the .NET Framework from previous versions of App-V.

App-V 4.5 continues to be fully compatible with .NET applications. The change in compatibility only manifests itself with the .NET Framework.

This table summarizes the requirements for .NET support in APP-V 4.5.

image

Read more at source.

Next Page »