Adobe Acrobat 8 / 9 / X continued

This is a repost of an old article published on an old blog.

imageAfter reading and troubleshooting the Adobe Acrobat in a virtualized environment for quite a while – I intend to finalize some findings in this post.

Aaron Parker has done a great write up around any Adobe software and especially detailed the problems in two posts – all worth reading;
Softgrid: Sequencing Adobe Acrobat 8 – The Story So Far
More on Softgrid and Adobe Acrobat

Microsoft has of course shared some information on specific issues – posted in quite a few articles but never gathered into something collected or posted as a prescriptive guidance.
 
The most common problem one might experience – in general with Adobe, but not really specific – is the licensing engine which has trouble being virtualized.
Adobe has done a general write-up of what to look into when troubleshooting, but their general point of view on virtualization is of course that it is not supported.
To grasp the impact – here are two articles that Aaron Parker (once again) wrote in addressing this specific issue with Adobe products in general (part of a 7-post series):
Addressing Licensing Issues With Adobe CS3 Apps on Softgrid
Update On Running Adobe CS3 Applications in Softgrid

Within the last post there is a comment which is spot on;
Extract the licensing engine (available as a MSI) from an Adobe CS4 cd and deploy it natively. This would be a pre-requisite both before sequencing and when deploying to the client. The file is available (may change of course) in payloads\AdobeALMAnchorServiceAll and can be installed using the following command-line;

AdobeALMAnchorServiceAll.msi ADOBE_SETUP=1 UPGRADINGPRODUCTCODE=1 MSIRESTARTMANAGERCONTROL=Disable

If you are considering the Adobe Acrobat 8 for virtualization – its worth noting that you get your hands on a copy that utilize the Flexnet-licensing engine – as there are other licensing technologies used aswell.
Considering that Microsoft posted an article in regards to 32-bit / 64-bit challenges it may be that the process can be virtualized. If somebody knows – it would be great sharing.

Using Adobe Acrobat X does not require the native deployment of a licensing engine.

Next challenge can be resolved in a number of ways – how is really determined by what possibilities you have. The use of Adobe Customization Wizard 8 and Adobe Customization Wizard 9 gives several possibilities to configure certain options that often are considered standard when performing a large deployment within an enterprise. Exactly which ones are determined by company policy – however disabling of the automatic update feature seems very consistent regardless of corporation.
Using the above tools this can be done in a click – only to be noticed not to stick when deploying a virtualized Adobe Acrobat. The problem is that the specific key disabling the feature is placed within a policies registry key – something which App-v 4.5 handles differently and described in detail by Microsoft. Group Policies are not seen in the virtualized environment and thus the software goes straight to the native instance.
How-to resolve this?
We utilized Group Policy Preference which has the possibility to deploy simply registry keys in a controlled manner. We located the keys using the sequencer to see what was placed within HKLM\Software\Policies and from that knowledge we could determine what was needed to be deployed natively.

As soon as we allowed users to try the software we received reports of the following error (only available in v8/9);

Adobe Acrobat: Could not initialize Organizer database. Organizer Features will not be available.

Just add the LOCAL_INTERACTION_ALLOWED (now always part of the sequence as of 4.6 Service Pack 1) and set it to true. More to read; A Look Under the Covers – The LOCAL_INTERACTION_ALLOWED Tag

Oddly enough it was shown that the entire feature is dependent on an embedded MySQL database that starts-up in the background. The error may not only show up when starting or stopping the software – but also when accessing the menus under File.
Also – it was noted that turning off the following option was improving the experience;
Remember Files in Organizer History For
This is located under Preferences –> Documents and documented more at Adobe

As testing continued a second – very odd – issue was reported which had not been documented anywhere else as far as I could see. Earlier this year a post was made that would explain how-to resolve it.
The error message that the user was presented with notified them that no printer existed;

Before you can perform print-related tasks such as page setup or printing a document, you need to install a printer

Something that everyone  verified shortly there after. Since Adobe installs and sets a printer during sequencing to much of the registry was captured – despite us following the best practice advise of having a dummy-printer installed on the sequencer. Remove the below key post-monitoring and all will be well. If its removed during sequencing – it will hide any natively available information, and produce the same error message once again to the users.

HKCU\Software\Microsoft\Windows NT\Current Version\Windows

 

Update 24-02-2011;
In case you have this problem running Adobe Reader 9.4.2 – see this technote;
http://kb2.adobe.com/cps/891/cpsid_89178.html

Does this mean that a complete and functional Adobe Acrobat now can be distributed to your corporation as a virtualized application?
Unfortunately not. Somethings simply fall out due to the concept of virtualization;

  • PDF-printer will not be available when the package is deployed
  • Adobe Distiller does not work – it just consumes CPU. Considering the above Microsoft article – there may be someone who was successful in sequencing this.
  • Any integration of plugins would of course fail – unless you include those within the virtualized environment

A very nice write-up howto extract the printer and printer driver has been written by Felipe.

Any plugins was determined to not be installed (using the ACW). Any customer that I have been involved with never bothered about the Distiller or PDF-printer – as free (relatively) options were distributed or the feature was simply not requested. Aaron described these issues too and suggested possible ways forward – but that is another topic. Considering that the licensing engine was extracted – any further development that would extract more content would put this in a high-risk zone of not recommended to virtualize.

See complete recipe (most of the knowledge can be applied for all versions – version X has been used for the below writing);

Be prepared;

1. Download the Adobe Customization Wizard X

2. Dowload all the patches you require

3. Create an MST using the tool mentioned in #1.
Following options are to be chosen (apart from what are required – such as licensing etc)
Installation Options;
Disable “Enable optimization”
Features;
Disable all all integration components to other softwares
Registry;
Remove the following registry keys;
HKLM\Software\Microsoft\Windows\CurrentVersion\Run
-Acrobat Assistant 8.0
-Adobe Acrobat Speed Launcher
-Adobe ARM
Shortcuts;
Remove the following shortcuts;
Adobe Acrobat Distiller X
Adobe Acrobat X (desktop)
EULA;
Check “Suppress display of End User License Agreement (EULA)
Online and Acrobat.com Features;
Check the following options;
Disable all updates
Disable registration
When launching in Internet Explorer, prompt user with Open / Save dialog
Disable Help –> Digital Editions
Disable Product Improvement Program
Disable all Acrobat.com access, including initiation and participation
Set the following choices;
Load trusted roots certificates from Adobe; Enable & Install silently
Display PDF in browser; Disable and Lock

Sequence

Install;

Install the MSI and apply the previously created MST
Install all your required patches. With version X its especially recommended to have the latest patch to avoid beeing forced to disable Sandbox-mode. Use at least 10.1.1

Configure;
Don’t perform any steps

Post-configuration;
Delete the following registry-key;
HKCU\Software\Microsoft\Windows NT\Current Version\Windows

I recommend removing all shortcuts apart from Adobe Acrobat.

ISI Toolbox 6.1 Pharma–moving towards x64

 

This is a repost of an old article published on an old blog.

When packaging the Adobe Acrobat plugin ISI Toolbox 6.1 Pharma on a x86 environment and moving the package to a x64 environment – it complains about corrupt licensing. The installer seems to have issues running and installing on a x64 platform – so using App-V you can leverage the fact that you get around the installation while moving forward.

The error states;

Failed to initialize license License object

Sequencer
Windows XP SP3
Main package; Adobe Acrobat Pro 9.4.3
Suited Package; ISIToolBox_61_Pharma_Release_072309
App-V 4.6 SP1 sequencer (probably has no relevance – just that DSC is less hastle with this version)

Note; Do not start Adobe Acrobat while sequencing at any point

Client
Windows 7 x64
App-V 4.6 SP1 client + Hotfix package 1

When performing a vanilla sequence the following is noted just before the error message when reviewing the background activity with Process Monitor.

This indicates a hard-coded path – something often located in a .ini-file or registry. Just checking the registry gave me a bunch of stuff – locate the key that needs to be updated below. You can find the correct places for the version you are using by searching for isi.license.dll.

Usually App-V solves these types of issues by replacing paths with variables (CSIDL), however since it says file:// and then the path – App-V assumes that this is a link to something not part of the package – therefore we have to manually change the path.

There were some assembly references I did not update (they are not listed at all below).

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\CLSID\{063018F7-202A-3701-9525-A57EAEAF259A}\InprocServer32\1.1.4.1001]
“Assembly”=”ISI.License, Version=1.1.4.1001, Culture=neutral, PublicKeyToken=f44a930efc8ab7ca”
“Class”=”ISI.License”
“CodeBase”=”file:///C:/Program Files (x86)/Common Files/ISI/ISIToolBox/License/ISI.License.DLL
“RuntimeVersion”=”v1.1.4322”
[HKEY_CLASSES_ROOT\CLSID\{0B278123-78A5-3B6F-A3A4-9732FDEEDBA0}\InprocServer32]
@=”mscoree.dll”
“Assembly”=”ISI.License, Version=1.1.4.1001, Culture=neutral, PublicKeyToken=f44a930efc8ab7ca”
“Class”=”ISI.LicenseInvalidMachineException”
“CodeBase”=”file:///C:/Program Files (x86)/Common Files/ISI/ISIToolBox/License/ISI.License.DLL
“RuntimeVersion”=”v1.1.4322”
“ThreadingModel”=”Both”
[HKEY_CLASSES_ROOT\CLSID\{0B278123-78A5-3B6F-A3A4-9732FDEEDBA0}\InprocServer32\1.1.4.1001]
“Assembly”=”ISI.License, Version=1.1.4.1001, Culture=neutral, PublicKeyToken=f44a930efc8ab7ca”
“Class”=”ISI.LicenseInvalidMachineException”
“CodeBase”=”file:///C:/Program Files (x86)/Common Files/ISI/ISIToolBox/License/ISI.License.DLL
“RuntimeVersion”=”v1.1.4322”
[HKEY_CLASSES_ROOT\CLSID\{C4856FE7-44B4-3DBF-8F94-768949D66B9E}\InprocServer32]
@=”mscoree.dll”
“Assembly”=”ISI.License, Version=1.1.4.1001, Culture=neutral, PublicKeyToken=f44a930efc8ab7ca”
“Class”=”ISI.LicenseCorruptException”
“CodeBase”=”file:///C:/Program Files (x86)/Common Files/ISI/ISIToolBox/License/ISI.License.DLL
“RuntimeVersion”=”v1.1.4322”
“ThreadingModel”=”Both”
[HKEY_CLASSES_ROOT\CLSID\{C4856FE7-44B4-3DBF-8F94-768949D66B9E}\InprocServer32\1.1.4.1001]
“Assembly”=”ISI.License, Version=1.1.4.1001, Culture=neutral, PublicKeyToken=f44a930efc8ab7ca”
“Class”=”ISI.LicenseCorruptException”
“CodeBase”=”file:///C:/Program Files (x86)/Common Files/ISI/ISIToolBox/License/ISI.License.DLL
“RuntimeVersion”=”v1.1.4322”
[HKEY_CLASSES_ROOT\CLSID\{DEE60E4D-4E40-3F3E-95C7-63B85AD2A17F}\InprocServer32]
@=”mscoree.dll”
“Assembly”=”ISI.License, Version=1.1.4.1001, Culture=neutral, PublicKeyToken=f44a930efc8ab7ca”
“Class”=”ISI.LicenseInvalidException”
“CodeBase”=”file:///C:/Program Files (x86)/Common Files/ISI/ISIToolBox/License/ISI.License.DLL
“RuntimeVersion”=”v1.1.4322”
“ThreadingModel”=”Both”
[HKEY_CLASSES_ROOT\CLSID\{DEE60E4D-4E40-3F3E-95C7-63B85AD2A17F}\InprocServer32\1.1.4.1001]
“Assembly”=”ISI.License, Version=1.1.4.1001, Culture=neutral, PublicKeyToken=f44a930efc8ab7ca”
“Class”=”ISI.LicenseInvalidException”
“CodeBase”=”file:///C:/Program Files (x86)/Common Files/ISI/ISIToolBox/License/ISI.License.DLL
“RuntimeVersion”=”v1.1.4322”
[HKEY_CLASSES_ROOT\CLSID\{EF11C26C-CE73-30C6-8D58-8085BBBB8FF4}\InprocServer32]
@=”mscoree.dll”
“Assembly”=”ISI.License, Version=1.1.4.1001, Culture=neutral, PublicKeyToken=f44a930efc8ab7ca”
“Class”=”ISI.LicenseExpiredException”
“CodeBase”=”file:///C:/Program Files (x86)/Common Files/ISI/ISIToolBox/License/ISI.License.DLL
“RuntimeVersion”=”v1.1.4322”
“ThreadingModel”=”Both”
[HKEY_CLASSES_ROOT\CLSID\{EF11C26C-CE73-30C6-8D58-8085BBBB8FF4}\InprocServer32\1.1.4.1001]
“Assembly”=”ISI.License, Version=1.1.4.1001, Culture=neutral, PublicKeyToken=f44a930efc8ab7ca”
“Class”=”ISI.LicenseExpiredException”
“CodeBase”=”file:///C:/Program Files (x86)/Common Files/ISI/ISIToolBox/License/ISI.License.DLL
“RuntimeVersion”=”v1.1.4322”
[HKEY_CLASSES_ROOT\CLSID\{FFEB2081-F83C-35B9-953C-07424028766D}\InprocServer32]
@=”mscoree.dll”
“Assembly”=”ISI.License, Version=1.1.4.1001, Culture=neutral, PublicKeyToken=f44a930efc8ab7ca”
“Class”=”ISI.Register”
“CodeBase”=”file:///C:/Program Files (x86)/Common Files/ISI/ISIToolBox/License/ISI.License.DLL
“RuntimeVersion”=”v1.1.4322”
“ThreadingModel”=”Both”
[HKEY_CLASSES_ROOT\CLSID\{FFEB2081-F83C-35B9-953C-07424028766D}\InprocServer32\1.1.4.1001]
“Assembly”=”ISI.License, Version=1.1.4.1001, Culture=neutral, PublicKeyToken=f44a930efc8ab7ca”
“Class”=”ISI.Register”
“CodeBase”=”file:///C:/Program Files (x86)/Common Files/ISI/ISIToolBox/License/ISI.License.DLL
“RuntimeVersion”=”v1.1.4322”
[HKEY_CLASSES_ROOT\Record\{21E52839-5296-3F32-9B13-4F9FF30FD183}\1.1.4.1001]
“Assembly”=”ISI.License, Version=1.1.4.1001, Culture=neutral, PublicKeyToken=f44a930efc8ab7ca”
“Class”=”ISI.LicenseHResult”
“CodeBase”=”file:///C:/Program Files (x86)/Common Files/ISI/ISIToolBox/License/ISI.License.DLL
“RuntimeVersion”=”v1.1.4322”
[HKEY_CLASSES_ROOT\Record\{F4EA5A3C-EE9B-3FB0-A2B7-D18B82E6259E}\1.1.4.1001]
“Assembly”=”ISI.License, Version=1.1.4.1001, Culture=neutral, PublicKeyToken=f44a930efc8ab7ca”
“Class”=”ISI.LicenseType”
“CodeBase”=”file:///C:/Program Files (x86)/Common Files/ISI/ISIToolBox/License/ISI.License.DLL
“RuntimeVersion”=”v1.1.4322”

Adobe and Flexnet

image

This is a repost of an old article published on an old-blog.

Ever since Aaron Parker did a series on how to virtualize Creative Suite 3 and the slightly updated post regarding virtualizing Adobe Acrobat (8/9) on my part – licensing has been a discussion surfacing when discussing Adobe applications.

This resurfaced again – this time while using a Photoshop Elements 8 package and Adobe Creative Suite 3 / 4 or Acrobat 8 / 9 at the same time. It relates to different versions of the FlexNet license engine running – and if a compatible version of the engine is not available the licensing will fail.

Using a Adobe Anchor MSI from the Creative Suite 3 or 4 DVD has been the solution so far – once you deploy that natively to both your clients and sequencers the problem is resolved (as first posted in the comments on Aarons blog). The FlexNet service will only run one instance that is available natively – as opposed to running several instances virtualized.

As Photoshop Elements 8 uses the same FlexNet service, we didn’t anticipate a problem in reusing the previously recommended solution. The FlexNet service is good in such a way that it is backwards compatible – so any Creative Suite 3 application can use the newer Creative Suite 4 service. Photoshop Elements 8 did require a newer version – yet again – of the service. Something that was not provided as an easy to extract MSI. 
To break it down:

· AdobeALMAnchorServiceAll.msi – from the Creative Suite 3 DVD

· AdobeALMAnchorService2-mul.msi – from the Creative Suite 4 DVD

There is an update for Adobe Acrobat 8 which installs a newer version of the FlexNet service compared to CS4. This looks a little bit different in terms of how it’s installed.

image

It seems that all that is provided is a .DLL and an .EXE – when executing the following is printed out:

Trying to install anchor service… 
Installation succeeded.

What version does the Photoshop Elements 8 require? Since we had setup the sequencer with the Creative Suite 4 edition of the FlexNet service – it would have been all set incase it could live with the version from Creative Suite 4. However – as part of the package there was an update file relating to the FlexNet service.

image

It seems that Photoshop Elements 8 indeed require a newer version of the Flexnet-service compared to both the patch and the previously used Creative Suite 4 installed service. However – this update was baked into the installer for Adobe Photoshop Elements 8 and not so easily extracted as the MSI from the Creative Suite 4 media.

Remember the FNP_Act_Installer.dll above from the licensing-service path installation-kit?

image

It seems there is a copy located in the folder of Elements Organizer 8.0 when Photoshop Elements 8 is installed. The above screenshot shows the new FNP_Act_Installer.dll copied in along side with the older-version of the license patch (named FNP_Act_installerold.dll).

What if you run the InstAS.exe now? Actually it installs the service or updates to the required version.

However, our story does not end here. It seems that when installing the MSI from the Adobe CS3/CS4 media – it does one more additional thing apart from just installing a service. Using the above service will fail unless you are executing a dependent application with non-elevated privileges – as the user does not have the permission to trigger a start of the service.

The permissions of the services differ from the default permissions applied to a standard service installation. A working installation of the FlexNet Licensing Service has the following permissions applied:

C:\Users\nicke>sc sdshow “FlexNet Licensing Service” 
D:(D;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;NU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CC 
DCLCSWRPWPDTLOCRSDRCWDWO;;;SY)(A;;CCLCSWRPLOCRRC;;;IU)

For a full understanding of what the above permissions list means, please see the following web page: 
http://msmvps.com/blogs/erikr/archive/2007/09/26/set-permissions-on-a-specific-service-windows.aspx

The relevant permissions are the following extract:
(A;;CCLCSWRPLOCRRC;;;IU) 
Which means that Interactive User (IU) has Query Config, Query Status, Enumerate Dependts, Interrogate, User Defined Control, Read security descriptor, Start service permissions (and whatever else was missed).

An export of the permissions from the registry looks as follows:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\FlexNet Licensing Service\Security] 
“Security”=hex:01,00,14,80,8c,00,00,00,98,00,00,00,14,00,00,00,30,00,00,00,02,\ 
00,1c,00,01,00,00,00,02,80,14,00,ff,01,0f,00,01,01,00,00,00,00,00,01,00,00,\ 
00,00,02,00,5c,00,04,00,00,00,01,00,14,00,ff,01,0f,00,01,01,00,00,00,00,00,\ 
05,02,00,00,00,00,00,18,00,ff,01,0f,00,01,02,00,00,00,00,00,05,20,00,00,00,\ 
20,02,00,00,00,00,14,00,ff,01,0f,00,01,01,00,00,00,00,00,05,12,00,00,00,00,\ 
00,14,00,9d,01,02,00,01,01,00,00,00,00,00,05,04,00,00,00,01,01,00,00,00,00,\ 
00,05,12,00,00,00,01,01,00,00,00,00,00,05,12,00,00,00

That means that an interactive (logged on) user can start the service and therefore receive its licensing information. If the above is not implemented – the following error message can be seen:


Licensing for this product has stopped working.

This product has encountered a problem which requires that you restart your computer before it can be launched.

If your continue to see this message after restarting your computer, please contact either your IT administrator or Adobe technical support for help, and mention the error code shown at the bottom of this screen;

Error: 147:21

This error has also reported in a few forum posts:

http://forums.adobe.com/message/2989946
http://forums.adobe.com/message/3433233
http://www.appdeploy.com/messageboards/tm.asp?m=53453

Virtualized Office 2010 and Extended MAPI

In the forums there are a couple of threads which state that using the Send file via default mail-client fails in certain instances (most commonly when using any Adobe software) when using a virtual Outlook with the Office Deployment-kit.
In short, they open their application (Adobe Reader) and choose  a menu which allows them to directly forward their document to a new e-mail (click the letter in Adobe Reader available from the toolbar). Most commonly this fails with an error stating that there is no default mail client (and sometimes afterwards a more obscure error)

The below article explains MAPI and is quite useful;
http://support.microsoft.com/kb/315458
Which under #3 states the following;

3.It then looks under the client’s key to find the path of the correct DLL to load. If the function is a Simple MAPI function, it loads the DLL specified by the DllPath value, and then calls the function. If the function is an Extended MAPI function, it loads the DLL specified by the DllPathEx value. After finding the appropriate DLL, it then calls the function.

 

In the case of Microsoft Outlook, for example, it looks for the value of DLLPath or DLLPathEx under the following key:
HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail\Microsoft Outlook

Reviewing a procmon log to see what the application does – the following was found;
Within %TEMP% there are two log-files for the Mail proxy;
MapiProxyServer.log
MapiProxyClient.4916.log

Its nice to know there are log files for troubleshooting- they don’t tell us a whole lot about the behavior currently under investigation though and will only show if the proxy is initiated. Adobe Reader (in this case) fails before the proxy is actually used – so the two log-files were only located during a successful attempt to kick-start the proxy (right-click a file and choose send-to).

The following is being accessed by Adobe Reader while invoking the action to send an e-mail;

image

Considering the above statement this tells us;
1. Adobe Reader uses an Extended MAPI function
2. That’s not supported when using a virtual Outlook with the Office deployment kit since DLLPathEx isn’t created when using the kit

The Process Monitor capture above shows us that there are several registry keys and files that are traversed – to understand the flow the previously mentioned KB-article can be used to decipher why certain things are accessed in the very specfic.

First of all – if one of the below functions are used;
◦MAPIAddress
◦MAPIDeleteMail
◦MAPIDetails
◦MAPIFindNext
◦MAPIFreeBuffer
◦MAPILogoff
◦MAPILogon
◦MAPIReadMail
◦MAPIResolveName
◦MAPISaveMail
◦MAPISendDocuments
◦MAPISendMail

Its called Simple MAPI and the registry value DLLPath is used to locate the default main client. This seems to correspond to the most commonly used parts of the mail-client, however if any other function is used – DLLPathEx is lookedup to find the extended MAPI. Read more about MAPI from Microsoft in the article Differences between CDO, Simply MAPI and Extended Mapi.  If the lookup fails for the above registry value needed – a search for mapi32x.dll is started. Mapi32x.dll is a fallback and quite often not available at all on  a system. If you program starts searching for this – it means something has most likely failed.

Last stop is to present the user with a message that there is no mail-client – defined therefore it will check the PreFirstRun-key (perhaps you have a mail-client, buts its not setup?) or the NoMailClient for the corresponding message to present the users.

If reviewing a package containg a copy of Outlook – the keys looks like this;

image

Opening the file with PE Explorer or Resource Hacker reveals the below information regarding the OLMAPI32.dll file;

image

It seems that the file originated from MAPI32.dll – however offering an upgraded set of functionality.

Traversing the registry and comparing what Office 2010 layed down under the HKLM\Software\Clients key and what the Office 2010 Deployment Kit layed down showed some staggering limitations. A native install creates the following;

image

The Office 2010 App-V Deployment Kit creates the following;

image

We have 1 proxy with the deployment kit and 4 when using a native install. The MAPI, as we now know, is not complete either.

Threads;

http://social.technet.microsoft.com/Forums/en-US/appvgeneralsequencing/thread/0df815ae-19d6-4a2a-b028-b636952c91c9

http://social.technet.microsoft.com/Forums/en-US/appvgeneralsequencing/thread/8b028304-866d-4288-89df-01fd81e56b3e

http://social.technet.microsoft.com/Forums/en-US/appvgeneralsequencing/thread/149602b4-f894-4955-8b0e-fc7bff56e65e

http://social.technet.microsoft.com/Forums/en-US/appvclients/thread/a0f6e9ac-d3f7-4c86-831c-f93daee11511

App-V 4.6 SP1 Sequencer and Long Package Names

After running into an issue when testing the App-V 4.6 SP1 Hotfix 3 sequencer to provide two Mozilla-programs; Thunderbird and Firefox – an minor investigation came into play to locate the part of everything involved that broke a key feature of App-V 4.6 SP1.

Lets start at the beginning;
One key feature of App-V 4.6 SP1 is to allow the administrator to avoid thinking about setting up the sequencer with all minor tweaks and details that allows for a smooth sequencer experience as well as minimizing effort during sequencing. Part of this change is;

1. Support for using long-names for package names and root-directories
2. Creation of prerequisites such as the mount point (Q: ) and dummy ODBC-connections
3. Reports on potential issues before and after sequencing

During the initial release of 4.6 SP1 of the brand new sequencer – there was a minor bug relating to bullet # 2 and how the new sequencer setup the Q: – drive and  handling registrations of resources resulting in  failure when using packages on the client.
To remedy the problem a new hotfix was released that resolved this.

Bullet # 1 is the topic of interest for this next peculiar issue – how this feature works is quite elegant in some ways, however it does remove some of the control from the administrator if using long-names for package root and package names.

image

As you can see – package name and root directory (named Primary Virtual Application Directory in the above screenshot) are linked  together – you can check the Edit (Advanced) checkbox to type in your own root directory. Previously a strict enforcement was used to ensure that no short name was created for the root directory – simply by only allowing a 8.3-compliant name to be used as root directory. App-V 4.6 SP1 introduced the possibility to used long names. The requirement of a unique 8.3-root directory is still there, but instead the sequencer will generate a randomized short name for you.

image

As the sequencer generates this for you – the need and worry about having conflicting root directories disappears. As you can see in the above screenshot – a completely random short name is generated by the sequencer.

After completing an installation of Mozilla Firefox 9 or Mozilla Thunderbird 9 to the recommended root directory (not the default installation path) – the following occurs;

image

As you can see – once the installation is completed for Firefox 9 – the randomized short name is gone and instead replaced by a system generated short name.

The previously very delicate and important topic of ensuring unique and short name-compliant root directories just became very important – again. Why this happens (so far only seen with Mozilla installers) is unknown.

Trying to import two packages will generate a failure. Saving the package and opening it in the Package Editor reveals the following details as part of the package under the Files-tab;

image

Repeating the procedure, but instead performing an installation to the suggested default installation directory maintains the randomly generated short name.

Open Text Windows Viewer–virtual vs native install

If you have a native install of Open Text Windows Viewer (any version) and want to contaiimagen and co-operate a virtualized Open Text Windows Viewer you might run into a problem if the application uses certain COM-objects. As opposed to star the virtualized instance – the native application gets called every time. Try removing the following value while in monitoring mode;

HKCR\CLSID\ {30446849-11E3-11D0-9D4E-0020AFC0E4C0}\InprocHandler32

If you review the activity using Process Monitor – you will notice that SVCHOST.exe is the process that attempts to start alviewer.exe. The reason is explained by Sasha in one of the previously posted interviews.

Oracle Instant Client 10.2–sequence

An old recipe that was laying around for Oracle Instant Client 10.2.
Prerequisites
Some good things to know;
1. Oracle Client 10.2 contains some defects that requires the user that is running it to have Create global object permissions.
2. The user needs read-access minimum to the directory you will install the application to.
image
Sequence
Installation
Unpack all Oracle-clients to (instantclient-basic-win32-10.2.0.4.zip and instantclient-odbc-win32-10.2.0.4.zip);
C:\instantclient_10_2

Append C:\instantclient_10_2 to the PATH variable

Create tnsnames.ora in c:\instantclient_10_2 with the following content;

# tnsnames.ora Network Configuration File: D:\oracle\product\10.2.0\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
SERVER.FQDN =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (COMMUNITY = tcp.WORLD)(PROTOCOL = TCP)(HOST = FQDN)(PORT = 1531))
    )
    (CONNECT_DATA = (SID = name))
  )

Execute the following command;

C:\instantclient_10_2>odbc_install.exe JA
Oracle ODBC Driver is installed successfully.
C:\instantclient_10_2>

Configuration

Create a new System DSN
Choose Oracle_in_instantclient10_2

System Event Notification Service, App-V and logon failure

Located a very nice KB-article and wanted to be able to locate it again – hopefully it becomes more searchable using key words involved! Thanks to Justin Zarb for the find – personally, this was missed in a spreadsheet of articles that should have been on top of my head.

You may experience the following issues after you log on to a computer that is running Windows 7 or Windows Server 2008 R2:

  • Your desktop does not load. You only see a blue or black background image.
  • Windows Explorer does not run, and you cannot access your data.
  • You receive the following message in a notification balloon:

Failed to connect to a windows service. Windows could not connect to the System Event Notification Service (SENS). This problem prevents limited users from logging on to the system. As an administrative user, you can review the System Event Log for details about why the service didn’t respond.

When the issue occurs, a service host that contains the following services crashes on system startup:

  • Certificate Propagation
  • Extensible Authentication Protocol
  • Group Policy Client
  • IKE and AuthIP IPsec Keying Modules
  • IP Helper
  • Server
  • Multimedia Class Scheduler
  • User Profile Service
  • Task Scheduler
  • System Event Notification Service
  • Shell Hardware Detection
  • Themes
  • Windows Management Instrumentation

You may experience this issue after you install certain applications, for example Microsoft Application Virtualization Client ( App-V ), on the computer.
Note You have to restart the computer one or more times to recover from this issue.

See this article; http://support.microsoft.com/kb/2590550

Sequence Windows Live Messenger 5.1

When you sequence Windows Live Messenger 5.1 and run the application on a Windows 7 system – the below error message can present itself in the Application log;

Activation context generation failed for “Q:\Windows Live Messenger\VFS\CSIDL_PROGRAM_FILES\Messenger\Msmsgs.exe”. Dependent Assembly Microsoft.Windows.Networking.RtcDll,language=”*”,
processorArchitecture=”X86“,
publicKeyToken=”6595b64144ccf1df“,type=”win32“,version=”5.2.1004.3” could not be found. Please use sxstrace.exe for detailed diagnosis.

The user only receives the below error message;

The client could not launch C:\Program Files (x86)\Messenger\Msmsgs.exe (rc 1F701939-000036B1

Reviewing whats captured – the below can be found under CSIDL_WINDOWS\WinSXS. If you compare the contents of the folder – you can spot a similar naming for one of the folders and the missing assembly.

image

Copy the DLL from the folder named RtcDLL to the working directory of Messenger (VFS\CSIDL_PROGRAM_FILES\Messenger)

Create a file named msmgs.exe.manifest in the working directory with the below content;

<?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>Microsoft.Windows.Networking.RtcDll</strong>" version="<strong>5.2.1004.3</strong>" processorArchitecture="<strong>x86</strong>"></assemblyIdentity>
</dependentAssembly>
</dependency>
</assembly>

Create a second manifest named Microsoft.Windows.Networking.RtcDll.manifest (placed in the msmgs.exe working directory)

<?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>Microsoft.Windows.Networking.RtcDll</strong>" publicKeyToken="<strong>6595b64144ccf1df</strong>" version="<strong>5.2.1004.3</strong>" processorArchitecture="<strong>x86</strong>" />
<file name="<strong>rtcdll.dll</strong>" />
</assembly>

Anything marked in bold is things that needs to correspond to the original error message or a file we want to reference.

SolidWorks Explorer 2012–Sequence

Preparation

Install SolidWorks Explorer 2012 natively – once installed, export the following registry; HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\FLEXnet Licensing Service

Sequence

Installation

Install SolidWorks Explorer according to App-V sequencing best practice and import the above mentioned registry key.

Configuration

Run the applications and configure them according to your needs. Its recommended that you register the product and configure them to not check for updates.
The below screenshot is an example configuration of SolidWorks eDrawing 2012 Tools –> Options could look like;

image

Starting both eDrawing (which is included) and Explorer to pre-configure settings is recommended.

Save your package

Deploy

Just deploy – it should work fairly well.

This recipe should resolve the two below problems;

Issues with Solidworks 2011 sp02
http://www.appdeploy.com/messageboards/tm.asp?m=81157
Sequencing Solidworks Explorer 2011: This version of Solidworks has not been commissioned properly, please contact your supplier (A100,66)
http://social.technet.microsoft.com/Forums/en-US/appvgeneralsequencing/thread/efe0594e-0d5c-40d0-aa56-edccac532d01/