Archive for May 2014

Sequencing Adobe Acrobat Pro with App-V

Built and tested on Windows 8.1 x86 and App-V 4.6 SP3, Adobe Acrobat Pro XI.
Please note that this will work for all features of Acrobat except the pdf printer as this involves a printer device which cannot be virtualised. To replace this printer I recommend physically installing Doro PDF; this free application provides options for encryption.
We’re assuming your App-V drive is Q:\ here. If it’s not, please change any references to Q:\ to your chosen drive letter.

Requirements:
– Adobe Acrobat Pro XI source software
– Any patches for Acrobat Pro in .msp format(at the time of writing 11.0.7 – AcrobatUpd11007.msp – is the most recent)
– Adobe Customization Wizard XI (I used CustWiz11003_en_US.exe)

Steps:
– Download, install and run the Adobe Customization Wizard.
– Open the AcroPro.msi (your Acrobat Pro source location)
– Click through the pages and make the desired customisations for your organization. You will likely want to change the following things:

– Personalization Options
o Fill out User Name, Organization and Serial Number
o Check “Suppress display of EULA”
o Important: set the Installation Path to the folder on Q: you will choose in the sequencer as your asset directory. In this case we’ll use Q:\ACROBTXI.001 , keeping with the recommended 8.3 structure.
– Installation Options
o Run the installation unattended and suppress any reboots
o Set the desired language
– Shortcuts
o Move/Remove any Start Menu and/or Desktop shortcuts
– Online Services and Features
o Disable product updates
o Disable registration
o Disable help > Digital Editions
o Disable product improvement program
o Disable initiating shared reviews
o Disable file storage on Adobe online services
o Disable all Adobe online services…

– Now click on Transform -> generate transform and save the file in the same folder as the Acrobat Pro installation source and give it a name like AcrobatPro.mst.
– Make sure any patches are in the same folder as the Acrobat Pro installation source as well.
– Start the sequencer and create a new default package, select custom installation and set the ASSETDIR to what you selected previously in the customization wizard. We’ll continue using our example: Q:\ACROBTXI.001. Start monitoring.
– During sequencing install Acrobat using the .mst file we previously created using the Customization Wizard and including the most recent patch. Use the following command line, replacing YourLocation with the actual location you are using:

msiexec.exe /i "YourLocation\AcroPro.msi" PATCH="YourLocation\AcrobatUpd11007.msp" TRANSFORMS="YourLocation\AcrobatPro.mst" /qb ALLUSERS=2 /l*v c:\windows\temp\AcroProXI_install.log REBOOT=ReallySuppress

– After the installation finishes copy the following files to a backup location:
All the files in the folder “%CommonProgramFiles%\Adobe\OOBE\PDApp\core\Microsoft.VC90.CRT”
All the files with the extension .manifest in the folder “%CommonProgramFiles%\Adobe\Acrobat\11.0\Linguistics\Providers\Plugins2\AdobeHunspellPlugin”
– Navigate to the installation folder and try to run Acrobat.exe. You’ll notice the application will give an error. This is because the Visual C assemblies cannot be read correctly.
– Now click “I am finished installing” in the sequencer and click next. This will build the VFS.
– The error while starting Acrobat can be resolved by copying the contents of the folder “%CommonProgramFiles%\Adobe\OOBE\PDApp\core\Microsoft.VC90.CRT” (of which you just made a backup) to the VFS location Q:\ACROBTXI.001\VFS\CSIDL_PROGRAM_FILES_COMMON\Adobe\OOBE\PDApp\core\Microsoft.VC90.CRT which should now exist. Overwrite the contents.
– Acrobat.exe should now start correctly. This should give us the opportunity to make some more changes in the application’s settings. For example, you might want to remove the checkbox in the section Edit > preferences > General for the option “Warn if Acrobat is not my default PDF application” and “Display messages when starting Acrobat” in the same section.
– Click Next and customize the package. Go to the tab “Services” in the sequencer and disable the service “Adobe Acrobat Update Service”.
– Go to the OSD tab and set LOCAL_INTERACTION_ALLOWED to TRUE.
– Go to the registry tab and navigate to the key HKLM\Software\Adobe\Acrobat\11.0\Installer. Create a new DWORD value here named DisableMaintenance and set its value to 1. This will disable the option to repair the installation from the help menu.
– Perform default cleanup to the app-v’s files and registry entries and save the package. Mine was about 1.5GB dirty and 1.0GB cleaned, so it will save you ~500MB.
– Edit the main Acrobat osd and add the following script to copy the Visual C manifest and .dll files each time the application is started:

<SCRIPT EVENT="LAUNCH" TIMING="PRE" PROTECT="TRUE" WAIT="TRUE">
<SCRIPTBODY>
Copy \\\\YourBackupLocation\\Microsoft.VC90.CRT\\*.* "Q:\\ACROBTXI.001\\VFS\\CSIDL_PROGRAM_FILES_COMMON\\Adobe\\OOBE\\PDApp\\core\\Microsoft.VC90.CRT\\" /y \n
</SCRIPTBODY>
</SCRIPT>

Note that you need to change YouBackupLocation to the location where you copies the files in a previous step. Also note you need to double each backslash used to escape them. \n is used at the end of each line.
– While editing the .osd, also add the following to the <POLICIES> section:

<VIRTUAL_FILE_SYSTEM_PASS_THROUGH>TRUE</VIRTUAL_FILE_SYSTEM_PASS_THROUGH>
<VIRTUAL_REGISTRY_PASS_THROUGH>TRUE</VIRTUAL_REGISTRY_PASS_THROUGH>
<ENFORCE_ACLS_ON_VREG_MODIFY>TRUE</ENFORCE_ACLS_ON_VREG_MODIFY>

– Save the .osd.

Your package should now work except for the linguistics part. You can check this by clicking the “Spelling” menu in Edit > Preferences. If Acrobat crashes while clicking this, the correct files are not yet legible by your physical file system. To solve this, you will need to copy the two manifest files you backed up earlier from “%CommonProgramFiles%\Adobe\Acrobat\11.0\Linguistics\Providers\Plugins2\AdobeHunspellPlugin” to the physical location of “%CommonProgramFiles%\Adobe\Acrobat\11.0\Linguistics\Providers\Plugins2\AdobeHunspellPlugin”. Unfortunately this is how the application works in combination with the side-by-side assemblies. The process running that needs to be able to read the .manifest files cannot read them in the Virtual File System. We can solve this by using a small script that runs pre-launch or, if this is not possible, perhaps on login. We solved it by running a pre-luanch script using RES Workspace Manager and checking the box to make it run outside the virtual environment. The script looks like this:

md "%CommonProgramFiles%\Adobe\Acrobat\11.0\Linguistics\Providers\Plugins2\AdobeHunspellPlugin"
copy "\\YourBackupLocation\*.manifest" "%CommonProgramFiles%\Adobe\Acrobat\11.0\Linguistics\Providers\Plugins2\AdobeHunspellPlugin" /y

This should also be possible using another script within the .osd file, but the user will need permissions to write to the physical %CommonProgramFiles% for that to work.

This should leave you with a stable App-V of Acrobat Pro XI that does not produce any errors in the Windows Event Viewer logs.