Catch me at BriForum 2014


You can catch me at BriForum Boston this year from July 21 – 23, 2014. I will be speaking with my colleague Rory Monaghan (App-V MVP) on sequencing for success.

We will discuss the best practices to get the best results with App-V. Ryan will detail how to use symbolic links, shims and other methods to enable you to produce a disposable application ready for us with any potential client. Sequencing once for many. Rory will discuss some sequencing best practices and give food for thought regarding planning. Just because an application can be sequenced, should it? Just because Microsoft says something like drivers can’t work or DCOM, that doesn’t mean you’re dead in the water yet. There may be a way to get around this. Also, Rory will cover some sample case studies of his successes for clients versus some failures.

Attendees will learn:
• How to produce an application that can be used for all of your customers who need it despite possible unique settings for each
• Examples of where this can be useful and required. e.g. Cloud Services
• Case studies of different client projects and success versus failures
• An idea of what set of applications may be better delivered as a local traditionally installed application
• How to decide to deliver applications which have been reported to have issues during Sequencing e.g. an application with DCOM, an application with Drivers, an application with COM+
• Learn some sequencing best practices and possible gotchas

Find more information on our session here

Information about the speakers: Rory and Ryan


App-V 5.0 SP2 Hotfix Package 5

Microsoft recently released Hotfix Package 5 for App-V 5.0 SP2. The first two below are items that I’ve wanted for a while:

1 – Enabling user-publishing in the Administrator context through Windows PowerShell

This hotfix release enables user-publishing to be done in the Administrator context through the following four Windows PowerShell cmdlets:


To do this, use the optional -UserSID parameter, and pass in the SID of the intended user.

2 – Connection groups cannot support both user-published and global-published packages

With this hotfix release, App-V 5.0 SP2 supports creating user-entitled connection groups that contain user-published and global-published packages by using Windows PowerShell.

3 – Deprecation of PackageStoreAccessControl support in App-V 5.0 SP2

Effective immediately, the PackageStoreAccessControl (PSAC) setting that was introduced in App-V 5.0 SP2 is being deprecated in both single-user and multiuser environments.


Download the hotfix and get more information here:

Updating a new Adobe Acrobat install

About to deploy Acrobat and find there are a lot of updates to install? Good luck trying to find an updated installer higher than version XX.0. Not only is it a pain to download and run every applicable update, trying to figure out the upgrade path can be like doing super math.

To make your life a little easier when deploying Acrobat, follow these steps:

1 .Determine the upgrade path

There is an Acrobat and Reader release notes page that can help you determine the upgrade path. Click on the version numbers to determine what version is required before that update can be applied. The patching got a little easier in 10.X and 11.X with more cumulative updates, but 9.x is still a PITA. For version 9, I suggest you obtain the upgrade path from here.

2. Download the update(s)

You can download all updates from this page.

3. Modify the Acrobat setup.ini

Next, grab your xx.0 installer and extract it with an archive utility such as WinRAR.

Open setup.ini with notepad and look for the [Product] section. Start a new line here line that begins with “Patch=” and list the MSPs in order from oldest to newest separated by a semi-colon.

Here are some examples of what your Patch line would be at the time of this writing:

Acrobat 11:


Acrobat 10:


Acrobat 9:


4. Copy in your patches

Place all of the MSPs into the root of the installation folder. This is the same folder that contains setup.ini.

5. Install

Run the Acrobat install and let it run all of the updates for you. The final version to be installed should be displayed in the installation menus. This can help you verify the latest version will be ready when the install is complete.


Use the Adobe customization wizard to generate a custom install. You can insert your license key, change the install directory, set default PDF viewers, disable the EULA, and many other useful settings. You can grab Adobe customization wizard 9 here,  X here, and XI here.

Hopefully these steps can keep you from going crazy when deploying Adobe Acrobat (especially version 9).

Sequencing DWG TrueView 2015 with App-V 5.0 SP2


There are several recipes out there for DWG TrueView 2014 and older, but I couldn’t find one for 2015. So here’s one for your sequencing pleasure. I’ll start off by saying that the recipe is very similar to the other ones out there, but I modified a few things to make the process simpler.

Sequencing System:

Server 2008 R2

App-V 5.0 SP2 with HotFix 4


Microsoft .NET 4.5

The following Visual C++  redistributables (if not using App-V 5.0 SP2):

  • 2008 x64 with SP1
  • 2010 x64 with SP1
  • 2012 x64 update 4

If you are using SP2, you do not need to worry about having C++ in your base build.

A sample DWG file – I grabbed one from here


Remove the local appdata exclusion

If you do not remove this, the application will not launch when deployed.


PVAD: Default location of C:\Program Files\Autodesk

Install using all default selections

Launch the DWG TrueView software.

This is where I differ from the other recipes and I’ll explain why.

Launching TrueView while sequencing will create the FTAs in the virtual environment. There will be no FTAs in editing mode if you do not launch it before finishing the sequence. Another reason is that you will need to open one of the sample DWG files I mentioned above. Doing so will drop two DLLs into AppData that will allow the application to open CAD files when published to a user (that’s the purpose of this application, right?). If those DLLs aren’t put into the package, you will be presented with this lovely message:

TrueView Missing DLL

Normally you could copy the DLLs to AppData from the originating location, but you won’t find them anywhere. Or you could always copy in the DLLs from another machine and manually create the FTAs, but why go through those extra steps?

Anyways, after you launch DWG and open the sample file, close DWG and finish the sequence.

Go straight to editing unless you need to optimize the package or restrict OS deployment.


There will be some extra shortcuts that show up due to us launching the application. I removed all shortcuts except for DWG TrueView 2015.  None of the others show up in the start menu or desktop.

Go to the package files tab and browse to: ‘VFS\AppData\Autodesk\DWG TrueView 2015 – English\R13\enu\recent\select file’

Delete the file that shows up in this folder (This is a shortcut to the sample file you opened).

Go to the registry tab and browse to: ‘CurrentUserSID\Software\Autodesk\DWG TrueView\R13\dwgviewr-E001:409\Recent File List’

Delete the ‘Recent File List’ registry key (This will clear the recent files in the application).

Save your package and deploy.


Possible errors you may receive:

  • A DLL error when opening a DWG file. Be sure to launch a sample file while sequencing as mentioned above
  • Launching the published application and receiving: Unhandled e0434352h exception at fe0xxxx. Make sure you have .NET 4.5.X on your target machine.


Direct download links for DWG TrueView 2015



App-V 5.0 SP2 Hotfix package 4!

Finally! The hotfix package we all have been waiting for.

For starters, grab the hotfix package here:

The fixes are as follows:

  • Enhancements to publishing and refresh performance have been made in all App-V deployment scenarios (RDS, Traditional Desktop, and VDI).
  • Publishing and start performance have been implemented in non-persistent VDI or RDS deployments together with a user environment management (UEM) technology.
  • Package converter has reported low success rates and low detection diagnosis.
  • Virtual application packages that require write access to any files and folders in the virtual environment are incompatible with App-V 5.0.
  • Upgraded versions of virtual application packages cannot be deployed in parallel with the original version of the package on the client.
  • Virtual application packages that contain shortcuts to executable (.exe) files on a network share cannot start those executables if the system account does not have access to the network share.
  • App-V Deployment configuration does not handle certain registry settings correctly.
  • The Windows PowerShell window is listed on the taskbar during App-V Client startup.
  • App-V Service crashes when packages are deployed through System Center Configuration Manager.

All things considered, I would consider this App-V 5.1 with the way Microsoft has been naming their product updates as of late. Things that caught my eye: Writable VFS, improved performance in VDI environments, and application shortcuts on the network.

As always, please use caution when deploying an update and test on a non-production system first.

App-V 5 and duplicate package GUIDs

An associate of mine recently discovered that we had two App-V 5 packages with the same GUID. This was not a case of mistakenly adding onto an existing package or anything weird like that. These were two new sequences made by reverting the snapshot on the virtual machine back to clean. This was a strange predicament because these are supposed to be randomly generated GUIDs with little chance of ever coming across the same GUID again. As we dug into it some more, we found two more packages with similar GUIDS, but different from the first. In total we have four sequences in our library that had duplicate GUIDs.

A quick search of the interwebs brought us to an article by Tim Mangan (godfather of App-V). I recommend anyone that will be sequencing applications read that article, but to sum up- Don’t take a snapshot of your virtual machine with it powered on. Make sure your snapshots are taken with the machine powered off. This will ensure the seed that creates the unique GUID will be different than the one that was saved in your snapshot. It may add a few seconds to your process, but its worth it in the end to avoid this issue.

Read more here: TMurgent

Batch and Powershell sleep commands

Sometimes when creating a script, you may need the script to wait or sleep for a certain period of time.

Batch Scripts:

If you search the interwebs, you will find a lot of workarounds that involve pinging a network address for a certain number of times. While this gets the job done, it isn’t necessarily the most straightforward way.

Luckily, there is another command that allows you to specify a wait time in seconds. This command is called timeout, which is something you are probably familiar with if you have kids. It does exactly what it sounds like, it sits there and waits for the number of seconds you specify. Or if you want the Microsoft definition: This utility accepts a timeout parameter to wait for the specified time period (in seconds) or until any key is pressed. It also accepts a parameter to ignore the key press.

According to Microsoft, the command applies To: Windows 7, Windows 8, Windows Server 2000, Windows Server 2003, Windows Server 2003 R2, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Vista, Windows XP.

So I am curious why this isn’t more widely used.


Although you can use the same command with PowerShell, you may want to take advantage of a new command called Start-Sleep. The Start-Sleep cmdlet suspends the activity in a script or session for the specified period of time. You can use it for many tasks, such as waiting for an operation to complete or pausing before repeating an operation.

Find more on these commands here:

App-V 5.0 SP2 Hotfix Package 2

Back in Februrary, I reported that Hotfix Package 1 was out for App-V 5.0 SP2 which fixed an issue we saw with QuickBooks. A little over a week ago Microsoft released Hotfix Pakcage 2 for App-V 5.0 SP2 and has the following fixes:

Issue 1

Certain App-V 5.0 Service Pack 1 (SP1) packages do not work with the App-V 5.0 Service Pack 2 (SP2) clients.

This is an issue in AppV 5.0 SP2 that may appear to prevent some applications from starting. This includes packages that were sequenced on earlier versions of App-V 5.0. A valid App-V 5.0 package starts correctly and displays a GUI under App-V 5.0 SP1. Under App-V 5.0 SP2, the same package does not display a GUI, or it appears not to start.

Issue 2

A sharing violation occurs during profile synchronization when you use App-V 5.0.

When an App-V user on a Remote Desktop Services (RDS) server logs on after a period of inactivity, a sharing violation may occur when the profile is synchronized to the local cache. Therefore, some required files are not copied over, or they are renamed. In this situation, the profile becomes corrupted.

Issue 3

App-V client handlers leak in Remote Desktop Services (RDS).

When an RDS user logs off, App-V does not release some handles that it held specifically for this session, and therefore the resource cannot be reused. In this situation, the Session ID monotonically increases without reusing IDs from previously finished sessions.

Issue 4

A virtualized Excel Visual Basic for Applications (VBA) application fails if the path for the application contains Chinese or Japanese characters.

Issue 5

Certain applications don’t start after Hotfix Package 1 for APP-V 5.0 Service Pack 2 is applied.

Selected registry key values were removed after the deployment of Hotfix 1 for APP-V 5.0 Service Pack 2. This prevents some applications from starting. By reverting Hotfix Package 1 for APP-V 5.0 SP2, you restore these registry values to their default state. However, any existing customizations will be lost and will have to be redone.

You can request the download from Microsoft here.

App-V 5 sequencer reboot error

Have you ever rebooted your App-V 5 sequencer and expect to continue sequencing, but was greeted with the following error?


Well, I certainly have and I had a feeling it had to do with joining the VM to the domain. Searching the web doesn’t bring up a lot of information on this specific error and the event log isn’t helpful either. What I did find was that Nicke has great a article about issues one may encounter when rebooting an App-V 5 sequencer.

Everything on the VM checked out until I got to the Scratch directory. I setup a test sequence and performed a reboot, but before I logged back into the machine I browsed to the Scratch directory via UNC and noticed it was empty. Well, if the Scratch directory is empty, how can you expect the sequencer to resume after a reboot? I made sure the directory was accessible and was being written to during a sequence. After some digging, I noticed the entire temp directory was cleared out upon reboot. This was confusing to me because there was no GPO applied to delete temp folders, redirect folders or set mandatory profiles. So I went ahead rolled my VM back to clean and set the following GPO:



Now I can reboot during the sequence and resume sequencing without any issues! 

QuickBooks unattended installation

If you’ve ever tried to push out a silent QuickBooks installation to a computer, you probably know its not supported by Intuit. Nor can you just extract the MSI and add parameters for licensing and install directory. It’s darn near impossible to do without some sort of automation script such as AutoIT Script. I’ve tried using an MSI editor in the past and didn’t get very far because there were some missing properties.

Today I found a post on a fairly new blog called VirtualAppPack. The article has good step-by-step instructions how to create a transform file and adding the missing licensing properties. The only thing I would add to his post is not to expect an installation to complete if you add  the ‘/qb’ parameter to your MSIEXEC command. For some reason or another, it doesn’t do a full install of QuickBooks with that command. But if you use ‘/qn’, it will perform a full install.

Source: QuickBooks 2014 silent-unattended install