ArcReader 10.2 sequenced

imageArcReader is a great viewing tool used through many organizations. I wouldn’t necessary force it to be virtualized primarily for one reason;

It is delivered by ESRI (the company making the software) as an MSI. It does contain quite a few CustomActions, however on a personal level I would consider this a low risk endeavour to deploy using traditional deployment methods.


Obtain the install files from ESRI. You would need to register, however downloading can be directly from their website.

System requirements are documented in a PDF and there shouldn’t be anything out of the extraordinary if deploying onto a Windows 7 machine. The target environment this post will focus on is Windows 7 x64, and therefore it will be sequenced on Windows 7 x64.

Once downloaded extract all the files (default location is your documents folder);


PVAD will be set to c:\program files (x86)\arcgis\arcreader10.2


You can choose to install the application with the default options, there isn’t anything in particular that requires altering due to the sequencing process. Recommended is to disable the customer experience improvement program participation.

Post sequencing

It seems that the icon for the ArcReader was detected to be a generic one, there a manual update was required.

For some reason, the first icon was selected.


Adobe Acrobat XI and AppV 5

Adobe Acrobat (along with any other Adobe software) has always been something people want to virtualize due to different reasons. In larger organizations the primary driver for this has been the poor handling of locking of files by applications that Acrobat integrates with. In essence, the installation fails if common applications are running – such as Outlook or Word.

With their latest suite of deployment tools there is actually a document of “process conflicts” which is list to long for anyone to care about.

The solution to workaround the limitation has never been nice, and App-V has in some cases allowed for a less disrupting delivery. As App-V 5 brings in a new set of features that resolves quite a few of the limitations (such as browser helper objects) that previously existed, perhaps we can leverage this to deploy Acrobat without the impacting the user experience?

Within the Microsoft Sequencing Guide for App-V 5 there is still a limitation of the drivers not beeing possible to make a part of the virtual package. We understand why, and assume that bringing support for this would require some changes or new inventive ways of “doing funky stuff” under the hood.

Just to clarify; The below suggestion is not supported by anyone. Acrobat virtualized is not, and has not been communicated that it will be at any time, supported by Adobe. Microsoft clearly states that drivers are not supported, and the below method is not advised by them to resolve issues relating to drivers.

What can we do in the mean time?

Well, here is a recipe and some great stuff for you to bring back to Adobe.



You will need App-V 5.0 SP2 sequencer setup on your packaging machine. The target environment this specific scenario has been tested for is Windows 7 x64, so that will be the packaging machine aswell. Office version this is tested with is Office 2007 and 2010 – both running as 32-bit applications.

The source media has been a Creative Cloud generated build, with default settings. The Build only contains Adobe Acrobat, and no other components.

I don’t see a reason that it will not work for traditionally created deployments using Adobe Customization Wizard, but I haven’t tested that.


There are four exclusions required to be created;

REGISTRY\USER\[{AppVCurrentUserSID}]\Software\Microsoft\Windows NT

Required to avoid issues when printing documents from Acrobat

REGISTRY\USER\[{AppVCurrentUserSID}]\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem


Required to avoid issues when sending emails via Acrobat


Required to avoid issues due to licensing


Primary Virtual Application Directory is set to the default installation path of Acrobat;

C:\Program files (x86\Adobe\Acrobat 11.0



From a command-prompt, run all the commands to finish the installation. It should look something like this;

exceptions\ExceptionDeployer.exe –workflow=install –mode=pre


exceptions\ExceptionDeployer.exe –workflow=install –mode=post


Goto the following registry key;

HKLM\Software\Adobe\Acrobat Distiller\11.0\PrinterName

Alter the name to a printer to every client has, perhaps this one;
”Microsoft XPS Document Writer”


Start Adobe Acrobat once, but perform no additional configuration


Directly skip to the Edit-mode of the sequencer (unless you need to set a Feature Block 1). Verify that the exclusions were effective and that nothing in the above locations have been captured.

Also goto the Advanced-tab and check the boxes. Required to avoid issues when sending emails via Acrobat


Save your package.

Now you have a virtual application, however the printer-driver is still not there. Perhaps you reviewed the italic suggestion under the installation-part? Well… this is where it gets fun. Most likely  you can get the application working with the suggestion, however – the Adobe Distiller (aka Adobe PDF Printer) is actually available as a separate installer. Unfortunately – getting your hands on it is just pure luck in some cases.

This is the splash-screen of the version the customer had;


It’s a perfectly crafted MSI, that can easily be deployed to any system. By pure luck, a different piece of software had licensed this and brought it out as a separate installer. It seems that the user-base was overlaping each other and therefore this was already on the clients.

So, App-V people – perhaps you can bug Adobe about make this deployment method available for enterprise customers so Acrobat can be virtualized, without impacting functionality?

I reached out to Adobe and got the generic response back with a link to their support statement. I assume you will. But they will never change this unless customers demand it.

App-V 5 and Virtual Extensions

Which virtual extensions within App-V 5 are only available if the package is published globally?

See this table!

I also decided to include a pointer if the target OS is relevant when sequencing. If it says yes, the package should be created on the same bitness as the target OS.


Virtual Extension Target OS specific Global only?
Shortcut No No
File Type Association No No
URL Protocols Yes No
AppPaths Yes No
COM Mode No No
Software Client Yes No
Application Capabilities Yes Yes
Context Menu Handler Yes No
Drag-and-drop Handler Yes No
Data Object Handler Yes No
Property Sheet Handler Yes No
Infotip Handler Yes No
Column Handler Yes No
Shell Extensions Yes No
Browser Helper Object Yes Yes
ActiveX Object Yes Yes

App-V 5 and Citrix

There is a great new whitepaper released by Microsoft dealing with different deployment scenarios when it comes to Citrix products. As Citrix announced the end of life for their Application Streaming – quite a few people have started to migrate over to App-V 5.

Unfortunately – App-V 5 is a bit more work (infrastructure wise) to get started and at the moment it is a bit slower aswell.

There isn’t any promise by Microsoft that this has improved in App-V 5.0 SP2, however thinking logically one could assume that all customer cases raised before App-V 5.0 SP2 will hopefully have made the product better.

So, what can we do for all the environments where we today suffer from a poor launch or publishing refresh experience?

1. Disable background staging of the registry to on-demand.

This may reduce the CPU-load!

Set the following registry key;


Value; NoBackgroundRegistryStaging


Source: App-V: On Registry Staging and how it can affect VDI Environments

2. Improve streaming performance by using IIS caching

Ingmar has created a great article on howto enable IIS to cache App-V files (which usually are large and thereby excluded from cache).

See his complete article; Microsoft App-V 5.0 – Streaming via HTTP

3. Use SMB 3.0 if you aren’t using a web-server.

Its fast. See the proof here at Xenapp-blog – Citrix XenServer – Make your network 10x faster or at the Citrix-blogs. Aidan has explained even more benefits for Windows Server 2012 R2 which kicks up the performance even more.

Migrating away from the old legacy (yes, they are legacy now) Windows Server 2008 R2 servers to take the benefit of even faster performance when it comes to file-transfer.

A great collection of Microsoft resources;

Updated Links on Windows Server 2012 R2 File Server and SMB 3.02

4. Use Global Refresh and disable User Refresh

Once the application is actually published to a client the performance impact isn’t usually that bad with App-V 5. If you deploy applications globally to a machine the provisioning part is moved away from the user context and to the machine context. By default though a option is set to perform a Global Refresh once a user logs on. If that is disabled, we completely remove that Publishing operation from the logon process.

Sample command-line,

Add-AppvPublishingServer –Name Server -URL <a href="http://server:80">http://server:80</a> –GlobalRefreshEnabled $true –GlobalRefreshOnLogon $false -GlobalRefreshInterval 1 –GlobalRefreshIntervalUnit Day

5. Set App-V specific process within the LogOffSysCheckModules Registry key

This is an oldie, but still valid. Citrix maintains a list of processes that it doesn’t consider to worth keeping the session alive for. Usually what happens is that sessions are just never logged off and the servers get full, without any active workers on it.

Process to include in the key;



Tips/Tricks for Using App-V Integration with XenDesktop 7.0

App-V 5.0 SP2 and pending removal / update

A new feature, that is only announced on Thamim Karims blog, is the pending state of the App-V 5.0 SP2 client. Previously I covered the new virtual extensions, the user interface removal and new config possibilities (packagestoreaccesscontrol, enable publishing refresh ux) as some great new possibilities for App-V that will greatly benefit everyone, however something that snuck upon is very late (as in when it went public) is the pending state.

So, what is a pending state for publish and unpublish?

Let’s review the output of PowerShell for our packages;

Get-AppvClientPackage -Name Microsoft*

PackageId            : a4b24f80-7fda-4735-86a2-6399fb77b6eb
VersionId            : 7ca886ab-66b9-45d5-b179-ae47ad71ff47
Name                 : Microsoft Frontpage 2003
Version              :
Path                 : D:\storage\MSApp-V_5.0 SP2\Microsoft Frontpage 2003\Microsoft Frontpage 2003.appv
IsPublishedToUser    : False
UserPending          : False
IsPublishedGlobally  : True
GlobalPending        : False
InUse                : False
InUseByCurrentUser   : False
PackageSize          : 364618049
PercentLoaded        : 100
IsLoading            : False
HasAssetIntelligence : True

As you can see there is the UserPending and the GlobalPending. I don’t think they relate to this, but they are an indication that something is up. A few other topics that are worth covering is the InUseByCurrentUser and InUse. These two (if set to True) gives the admin an inkling if the package is locked and can therefore not be updated – very frustrating if you want to push out updates.

Once we use the application – the state of those two values toggle.


In a pre-SP2 world, this would stop the package from beeing updated and we would simply have to force our users to close the application.

In a post-SP2 world, the App-V client gives us only a warning and an indicator that something will happen at a later stage;

Get-AppvClientPackage -Name Microsoft* | Unpublish-AppvClientPackage -Global
Unpublish-AppvClientPackage : The target package is currently in use. The Unpublish operation will be attempted at a later time
Operation attempted: Unpublish AppV Package.
AppV Warning Code: 0200000515.
Please consult AppV Client Event Log for more details.
At line:1 char:42
+ Get-AppvClientPackage -Name Microsoft* | Unpublish-AppvClientPackage -Global
+                                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidResult: (:) [Unpublish-AppvClientPackage], ClientWarning
+ FullyQualifiedErrorId : UnpublishPackageWarning,Microsoft.AppV.AppvClientPowerShell.UnpublishAppvPackage

When is a later time?

It seems that if a package is published globally a later time means a reboot, and if the package is published to the user a later time means a logoff / logon operation.

Once a user logs on again, or if the computer is restarted the application is gone!

Since we get a warning, and not a success message, I would _assume_ that SCCM would need an update to handle this and that the native infrastructure can cope with this aswell.


UserPending and GlobalPending didn’t toggle at all during my testing. No idea what they are used for?

App-V 5 and PowerShell

Some links to a few lines of PowerShell code that makes life easier for various tasks in App-V 5.


App-V 5 Client PowerShell Commands

Create friendly names for packages

App-V 5 Cmdlets (by VirtualEngine)

PowerShell Extract Item from ZIP (AppV)

PowerShell script to test App-V 5.0 Packages

App-V 5.0: PowerShell VE Launcher

App-V 5 Pre-cache script

App-V 5 PowerShell One-Liners – Adding and Publishing App-V Client Packages

App-V 5 PowerShell One Liners – Adding and Publishing A Folder of App-V Client Packages

New! Powershell in App-V 5; some example scripts

Converting App-V 4.x packages to App-V 5.0

How to use PowerShell to find packages in App-V v5 client connection groups

Migrating packages from App-V 4.x to App-V 5.0

PowerShell Delete App-V Cache

Sequence Articulate Storyline

A few hickups while playing around with Articulate Storyline and App-V 5. Unfortunately all this knowledge about howto sequence Storyline is based on a trial edition, however I don’t see a problem to make this work with a licensed edition.

Let’s get started!


Setup your packaging VM. See my previous article about the topic to see our starting point.

You can get the trial-version from Articulate, and in addition to the installer you will also need Adobe Flash Player (ActiveX)


Fire up the App-V Sequencer. During my installation the PVAD was the installation directory of the software. Adobe Flash Player (ActiveX) was actually installed after Storyline was installed, but before the initial launch. Since an initial launch was performed it will expire the trial once you deploy it to a client and force the user to activate.


Deploy it to a client that matches your packaging VM in terms of architecture and prerequisites installed. Then you are done!


App-V 5 and your first SQL Server Report

There are quite a few articles out there to setup and configure App-V 5 and the Reporting server along side SQL Server Reporting Services.

See this list on howto get started;

About App-V 5.0 Reporting

App-V 5.0 Reporting Setup and Query

App-V 5.0 Client Reporting – Client Setup

App-V 5.0 Reporting Server – missing prerequisites

General SQL Server Reporting Services installation tutorial;

Install Reporting Services

All of the above deals with getting the server up and running, the client to send data and to ensure that this is properly processed into the database.

I have spotted one query against the database on – which shows some basic information about application usage using SQL Management Studio.

Where are the reports? Well – SQL Server Reporting Services isn’t very friendly for a novice and to get started might be very daunting. So, here is a starting point! Use the above information to get started – have a server setup and a client (or more) reporting in.

To reach the home-page of SSRSS browse to;

This will present the homepage of the SSRS


As you can see I have multiple reports setup and ready to go. Lets get you started!

1. Click New Data Source

2. Setup the new connection. Most likely it will look something like this in a small lab environment.

Fields are as follows;

Name; AppVReports

Connection String; Data Source=localhost;Initial Catalog=AppVReporting

AppVReporting is the default database-name for the App-V Report database. Localhost should match your SQL Server hostname. Set Windows Security to use your own windows credentials to authenticate (or the user who access the reports). Click Test Connection to test the connection. Once all is set and done – click OK!


3. Download and upload the report

Download the report Application  Usage for user.

Select the upload-file;


Locate the downloaded file and upload it into the SSRS repository.

4. Edit the report to fit your environment

Press the menu for the report and and select Edit in Report Builder


5. Edit the Data Source

You can choose to delete the Data Source, or edit the existing one. In the end – you should point to the previously created Data Source.


If you select Add Data Source the menu looks like this;


As you can see – the previous created Data Source is visible in the list.

Click OK to finalize. Select Save and close the Report Builder.

6. Click the Application Usage for user

7. Enter the user you are interested in to display the report.

For example MYDOMAIN\username. Click View Report.


8. Voila!



Tim Mangan has made some reports available on his site, TMUrgent. Check them out!

2014-05-06 – Microsoft made additional reports available!

Experts2Experts Virtualization Conference

E2EVC Virtualization Conference

Join me and quite a few of the virtualization community in Rome for a weekend of interesting sessions and great discussions. E2E Virtualization Conference allows for a chance to meet up lots of great people out there willing to share everything they have encountered in the most relaxed conference for Virtualization specialists.

During the weekend of 1 – 3 November the hotel ROMA CITTA H10 will be full of us geeks that non-biased can discuss (for the 10th year around) the in’s and out’s of the technology out there in the end-user computing market.

The schedule is packed with sessions starting at eight in the morning and ending at just before seven o’clock at night.