Sequence Ecowin Pro 6

This is a repost of an old-blog article. This still applies to App-V 5.0, and as far as I remember – this content is not published anywhere else.

Since about 2009 and when I first replied to a thread regarding a “common” issue with sequencing a specific software named Ecowin Pro 6, a more or less active pursuit of finding a resolution has been ongoing.

Back in November 2009 Tim Mangan was over having a training session with us and I brought up the issue. Just about the same time the App-v 4.6 RC2 client was released to public and I posted the thread as a bug and got a response. Unfortunately the only response anyone gave was; Yes, its a problem.

Currently a bit jetlagged and trying to convert back normal hours (US v SE). I decided to stay up (landed about 7am and wanted nothing else than to sleep) to revert back the clock to normal – what better task than the above unsolved mystery?

After about 3 hours of various failed attempts and loads of reading among various articles that hopefully would give a hint – something came up. A guy named Jochen had described a solution to making SidebySide local (meaning placing them in the same folder as the application). As the error was similar and related to SxS (see below) a trial has to be made to see if this could possible be the solution. Below is a note from what the Application log showed when attempting to start Ecowin Pro as an app-v package.

Log Name:      Application
Source:        SideBySide
Level:         Error
Keywords:      Classic
Description:
Activation context generation failed for “Q:\ecowin.002\VFS\CSIDL_PROGRAM_FILES\EcoWin\EcoWin.exe”. Dependent Assembly Vinga.vscom90u,processorArchitecture=”X86“,publicKeyToken=”e520fe831c9439c8“,type=”Win32“,version=”1.0.0.55” could not be found. Please use sxstrace.exe for detailed diagnosis.

Jochens approach was to place the needed DLL-file and two manifests referencing it within the same folder as the application.
As I am not a programmer and specifically not the programmer any recompiling was not in question. From my understanding the manifest first created told the executable that it needed an assembly and the second manifest defined where to locate the DLL.

So, first manifest to tell Ecowin where it should get its above Vinga.vscom90u (named ecowin.exe.manifest)

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
</requestedPrivileges>
</security>
</trustInfo>
<dependency>
<dependentAssembly>
<assemblyIdentity type="<strong>win32</strong>" name="<strong>Vinga.vscom90u</strong>" version="<strong>1.0.0.55</strong>" processorArchitecture="<strong>x86</strong>"></assemblyIdentity>
</dependentAssembly>
</dependency>
</assembly>

The second manifest telling Ecowin where VScom90u.dll was (named Vinga.vscom90u.manifest)

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<noInheritable />
<assemblyIdentity type="<strong>win32</strong>" name="<strong>Vinga.vscom90u</strong>" publicKeyToken="<strong>e520fe831c9439c8</strong>" version="<strong>1.0.0.55</strong>" processorArchitecture="<strong>x86</strong>" />
<file name="<strong>vscom90u.dll</strong>" />
</assembly>

The version, name, type, processorArchitecture, publicKeyToken are all picked up from the original error message. Cross-referencing those with what is captured within the package the following file was located – the folder named contains the file, the version, the processer architecture and that seems to fit pretty good (and the file name seems to ring a bell..)

 

That file was now copied from its original folder to the same folder as the manifests and the Ecowin.exe

Wrapping up my project and deploying it to the client gave me some hope as a splash-screen showed up – only to reveal the next error message;

<lost screenshot>

For some reason the following registry key came to mind;

<lost screenshot>

Apparently the software notes what operating system it was installed on – just altering the above to (601) gave a new error message;

<lost screenshot>

Extracting the detailed message the following shows

06/28/10 15:36:38 Class not registered [VSCoCreateInstance(progid=EWDBINET2.MtickSeriesListInet2,clsid={EB702F7B-DF8E-4E4D-AE7D-BCC0E48E7105},iid={00000000-0000-0000-C000-000000000046}),CMTickApp::CheckDefaultDB]

So – something is wrong with the datasource specified. Reviewing a process monitor log a reference can be found

<lost screenshot>

Not really knowing the application – this is where some insightful answers would be needed. The error is very application specific and what relevance it has (or not) could perhaps be guessed from the 136 000 process monitor log seen above or simply asked to an application expert.

If anyone cares to explain the above to me – it would be greatly appreciated. I figured out a workaround using some experience, wild guessing and lots of reading.

Office 365 / 2013 and App-V – Exclude apps

With the latest release (June 5) of Office Deployment Tool there is the ability to exclude applications when creating a package. For example, if you don’t want to deploy – say Lync? – even though you are technically licensed for it.

How does it work?

Create your XML-file

The XML defines what product you want to deploy / create an App-V package for.

A reference can be found on Technet, with the entire list of all applications that can be excluded. Do note that each application you want to exclude is a new line within the XML-file

image

<Configuration>

<Add SourcePath="c:\media\" OfficeClientEdition="32" >
<Product ID="O365ProPlusRetail">
<Language ID="en-us" />
<ExcludeApp ID="Access" />
<ExcludeApp ID="InfoPath" />
<ExcludeApp ID="Lync" />
</Product>
</Add>
<Display Level="None" AcceptEULA="TRUE" />
<Property Name="AUTOACTIVATE" Value="1" />
</Configuration>

Run the command-line

Download source media;

 setup.exe /download c:\media\configuration.xml

Create the App-V package;

setup.exe /packager c:\media\configuration.xml c:\media\package

Now you have a package!

Just to deploy!

Remember, Office is only supported to be deployed as a global package when using App-V

 

Read more about this on Technet!

App-V 5 clean uninstall

Did you uninstall an App-V 5 client, and expected that it would cleanup after the mess it created?

Well, not all the time. After some interesting encounters – here is a small cleanup-list;

Remove the following folders;

C:\Program Files\Microsoft Application Virtualization

C:\ProgramData\App-V

C:\ProgramData\Microsoft\App-V

Remove the following registry keys;

HKLM\Software\Microsoft\AppV

Reinstall, and hopefully you are good to go!

Adobe PDF Addon download

Previously I discussed the deployment of Adobe PDF Addon with a virtualized instance of Adobe Acrobat. The Adobe PDF Addon is also known as the Adobe PDF Printer or the Adobe Distiller. In the end – its a piece of software that contains a driver and therefore can not be virtualized.

Extracting this from a generic piece of Adobe Acrobat media is rather painful, if at all possible, however the Adobe Distiller (aka Adobe PDF Addon) is available as a standalone installer.

How would one retrieve this standalone installer?

Well, by an odd-chance I bypassed the Creative Cloud Packager and downloaded the Adobe FrameMaker 12 from the Adobe Licensing Website. Hidden within these source-files there is a folder named;

AdobePDFCreationAddOn11_x86_x64

image

There are a few things needed to silently install this msi (distillr.msi).

Visual C++ 2010 SP1 (x64) is a prerequisite for the application.

There is a check by the installer to ensure that it is not installed standalone. Within the InstallExecuteSequence table the following CustomAction-reference needs to be removed;

image

With the above in place – you are all set togo!

SMART Notebook 11.4 and App-V 5.0

After some discussion during AppV User Group in Amsterdam about sequencing SMART Notebook I decided to post some steps and topics that could show up when sequencing SMART Notebook with App-V 5.0 SP2.

Pre-sequencing

Download the web-installer, the drivers and any potential galleries you would like to use from SMARTs homepage. Drivers have to be deployed seperately as they can not be virtualized, and therefore it might also be a good idea to install them as a prerequisite on the sequencer.

Regardless if you have been using App-V 4.6 or App-V 5.0, the architecture of your operating system is important. Notebook has some hard-coded paths, and therefore my recommendation would be to create a package for each type of architecture. In this post, Windows 7 x64 will be the one used – both for my sequencer and my client.

Sequencing

Apart from performing an ordinary installation the following choices were made;

PVAD was set to c:\dummy

Installation was set to the default folder suggested by the installer.

I did not start any application during sequencing.

To disable the automatic check for updates everyday the following needs to be set.

1. Set the following registry key.


Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\SMART Technologies\Product Update]
"CheckUpdates"=dword:00000000 

2. Remove the shortcut to SMART Product Update

Post-sequencing

Enable interaction with the local system using the Advanced-tab in Editing mode.

image

SMART Notebook does come with a few drivers, and these drivers can not be virtualized. To leverage them you would need to extract them and deploy them natively. Here comes methods which you can use to extract and deploy the drivers;

Drivers downloaded

To gain full functionality you would need to extract the drivers. The web-installer will download everything for you into the following folder, however it will remove all the contents once it is completed the installation.

%TEMP%\SMARTInstallWrapper\Wrapper_11.4.520.1\

Primarily the following contents are important if you want to deploy the drivers;

SMART Common Files, SMART Product Drivers

They are downloaded with easy to deploy MSI-files and corresponding language files, so to add them as a seperate pre-requisites shouldn’t be to complicated.

Drivers installed

In addition to the above drivers, there are additional drivers installed – which the sequencer will warn us about. image

Look within the installation of SMART and find the following folder;


C:\Program Files (x86)\SMART Technologies\Education Software\Printer Drivers\

Extract the folder, and save a copy. To install the driver, you would need to use the following command-line;

"C:\driver\XPSPrintCapturex64.exe" -i -p "C:\driver\\"

C:\driver would contain the entire contents of Printer Drivers, looking something like this;

image

We can find the installation-routine by checking the CustomAction table from the downloaded MSI-installation of SMART Notebook;

image

Using the same method the uninstall command can also be found;

image

Summary

You should now have the ability to gather Everything you need to virtualize SMART Notebook. Depending on your infrastructure, all of this can be wrapped into multiple installers, scripts or similiar things to easily deploy to your endpoints.

Adobe Creative Cloud and integration (and the challenge with AppV)

Adobe Creative Cloud is the latest way that Adobe will now offer software on a subscription model (or software as a service, or the cloud, or… well whats the new buzzword?). This allows customers to pick and select what software they want to use, download the media and then install the software they desire.

The installers are quite hefty and if you download almost all software within a suite you end up with a big-bundle of software in a rock-solid 16gb installation package. Even splitting up everything into an installation package per software (such as Photoshop..) the installation itself usually weigh in at 1-2gb.

Usually the software are standalone applications, however two pieces within the suite offer integration across applications. Adobe Bridge and Extendscript Toolkit seem to integrate into just about any piece of software.

Lets run through a few examples;

Any software allows the immediate jump to Adobe Bridge;

image

Adobe Bridge has the ability to execute startup scripts and each software installed will provide their own set;

image

Extendscript Toolkit will list all software (and the objects they are using);

image

It seems that the ability to integrate between these different pieces of software is a mixture of feature enablement and simple listing of folders.

The startup-scripts for Adobe Bridge for example seem to directly correlate to the amount of folders listed within the Startupscripts CC folder;

image

The ability to directly see different pieces of software through Extendscript Toolkit and the ability to invoke Adobe Bridge doesn’t seem to be related to the enumeration of any folder.

After reviewing procmon activity for quite a while there seems to only be single processing of a file that I didn’t fully explain. Now, this seems “easy to identify”, right? Keep in mind that I stated that there is _one_ file which is processed during startup that I didn’t fully explained. This means; I have taken the time to understand every single file which Bridge reads, or attempts to read during startup. I also processed captures when starting Bridge from any other suite, or when Extendscript Toolkit started.

image

Yes, figuring this out took me about 3 days of just reviewing and explaning every single line that Process Monitor gave me during a few use cases. Process Monitor doesn’t tell you whats wrong – it tells you what happens.

 

image

Once realising that this file was unexplained it is time to understand it a bit more…

The PCD.DB file, which is an unknown extension, was processed during each startup. If opening the file with notepad the following showed up;

image

SQLite Format 3 seems to relate to a database and after a quick search a utility to browse the database was found –  named SQLite Database Browser.

Cracking the PCD.DB file with SQLite DB Browser immediately showed this;

image

Reviewing the data using Browse Data tab the contents could be immediately spotted;

image

 

Why is this relevant? It seems that the integration between different pieces of the Adobe-suite has a check against this database if the component that it wants to integrate with is actually installed. As everything is contained into a single file it becomes a nightmare to manage in – lets say… – a Connection Group within App-V. In essence it means that the last file that gets read is the one that sets the stage for all Adobe-software. For example:

You create a package with Adobe Photoshop.

You create a new package with Adobe Bridge

If the Photoshop-package is the last one to load, the db-file will not contain any information about Adobe Bridge (as it is effectively overwritten by the one created in the Photoshop-package).

How do you handle it? You start with the worst case scenario!

Generate a package with all software you are licensed to install, install it and then save a copy of the PCD.DB.

Insert this file into every single Adobe (CC)-package you will create and the integration will work without issues!

App-V 5 Error codes

As App-V 5 introduces lots of new error codes – here comes a summary of a few of them. After reviewing a few of the error codes there are some great sharing among people who are writing blog-articles!

See Ralph Jansens summary for App-V 5 error codes

App-V error codes

Application  Launch failures

Error code: 0C80070057
Summary Solution: Upgrade to App-V 5.0 SP2
http://blogs.technet.com/b/virtualvibes/archive/2013/06/13/0c80070057-app-v-error-code.aspx

Error code: 0xFD01F25-0x7B
Solution Summary; Delete desktop.ini files within package
http://t3chn1ck.wordpress.com/2014/01/16/app-v-5-0-error-0xfd01f25-0x7b/

Error code: 0xc0000142
Solution Summary; Enable 8.3 Name creation on NTFS-volumes, or ensure that the client computer account has access to the source-files.
http://support.microsoft.com/kb/2777003/
http://cloudsurvivalguide.com/tag/0xc0000142/
http://blogs.technet.com/b/gladiatormsft/archive/2013/06/11/app-v-5-0-on-these-0xc0000142-errors-and-where-they-are-coming-from.aspx
http://blogs.msdn.com/b/sgern/archive/2013/11/14/10467791.aspx

Error code:Microsoft App-V Client” terminated with service-specific error: {Error in Application} The application failed to start properly (0x%lx).
Solution Summary; Uninstall App-V Client, Delete c:\programdata\appv and then reinstall App-V Client
http://social.technet.microsoft.com/Forums/en-US/80816b21-e0d1-41e0-bb74-c9eb1dc25a34/the-application-failed-to-start-properly-after-update-to-sp2?forum=mdopappv
http://social.technet.microsoft.com/Forums/en-US/c18b9678-3fbb-42c0-8427-c8401ee5a40d/appv-client-5-service-can-not-start-error-575?forum=mdopappv
http://blogs.msdn.com/b/sgern/archive/2013/03/21/10404146.aspx

Error code:0x83401D2A-80070490
Summary solution: Verify that you haven’t delete anything from the sequence that is required.
http://blogs.technet.com/b/virtualworld/archive/2013/05/24/app-v-5-0-error-virtual-fonts-subsystem-failure-on-first-launch.aspx

Error code: 0x8e90060a-003000F
Summary Solution: Conflicting settings between packages part of a Connection Group. Presumably resolved in App-V 5.0 SP2
http://ictworkspace.wordpress.com/2013/03/14/microsoft-app-v-5-connectiongroups-and-errors/

Error code:0x41e04304-00000028
Summary Solution: A package is part of to many Connection Groups with the same priority. Either prioritize the Connection Groups or remove it from one Connection Group.

Publishing failures

Error code:0x59701607 – 0xB
Solution summary: Delete user profile
http://social.technet.microsoft.com/Forums/en-US/f88bc1f6-569e-4c63-8343-bf676a1257f3/appv-5-part-or-all-packages-publish-failed?forum=mdopappv

Error code:0x4FC01304-0x80070003
Solution Summary; Execute the following Powershell commands;

Remove-AppvClientPackage *
Get-AppvPublishingServer | Sync-AppvPublishingServer

http://trentent.blogspot.de/2013/02/appv-5-issues.html

Error code:0x87D01280 Virtual application is in use
Summary Solution; As of App-V 5.0 SP2 a package in use is diverted to be removed at next reboot / logon. Stop the package to remove it immediately
http://www.applepie.se/app-v-5-0-sp2-and-pending-removal-update
http://blogs.technet.com/b/virtualvibes/archive/2013/12/03/pending-tasks-in-app-v-5-0-sp2.aspx

Error code:0x80190190
Summary Solution; Allow greater kerberos-tickets. Error code results in ACCESS DENIED.
Implement the following registry key;

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters]
"MaxFieldLength"=dword:0000fffe
"MaxRequestBytes"=dword:01000000

http://social.technet.microsoft.com/Forums/en-US/15035eed-e52c-4fa5-bd54-135c616f7b3e/appv-5-client-configuration-publishing-refresh-error-0x80190190?forum=mdopappv

Error code: 0x45500D27-0x80190191
Summary Solution: Ensure that AUTHENTICATED USERS is member of User group on Publishing Server.
http://blogs.technet.com/b/virtualworld/archive/2013/11/21/debugging-app-v-5-0-error-code-0x45500d27-0x80190191.aspx

Error code:0x80190194
Summary Solution; Error code means 404 response from web-host. Ensure that you have the right URL and port for the publishing server you configured.
http://social.technet.microsoft.com/Forums/en-US/c7e40a19-56c9-481a-bf87-fcb4c8bbd42d/problem-with-configuring-appv-client-50-with-publishing-server?forum=mdopappv
http://social.technet.microsoft.com/Forums/en-US/eb998be3-0915-4d7a-96af-7249c139276a/appv-50-sync-error-httprequest-sendrequest-failed?forum=mdopappv

Error Code: 070000000B
Summary Solution: Install all the pre-requisites for the App-V Client. In particular http://support.microsoft.com/kb/2533623/
http://social.technet.microsoft.com/Forums/en-US/ed9af6d5-7f09-45af-891f-444f4af8de26/unable-to-publish-a-package-in-app-v-50-client?forum=mdopappv

Add package

Error code:0C80070002
Summary Solution; App-V Package installation root is diverted, and a temp-folder is required. Create the folder temp at the same level as the App-V package installation root
http://social.technet.microsoft.com/Forums/en-US/849af455-5a1f-477a-bb29-430153587b7b/addappvclientpackage-fails-with-error-0c80070002?forum=mdopappv