App-V Deployment: Reader

This guide describes how to deploy Reader via App-V so that the application is delivered on demand but runs as if installed locally. See the online step-by-step example.

For a useful 3rd party blog, see https://www.tmurgent.com/TmBlog/?p=2332.

Unsupported scenarios

  • User-publish

  • Roaming profiles.

  • App-V is not tested in Citrix environments.

System requirements

  • Microsoft Application Virtualization Sequencer Version 5.0 SP3.

  • Acrobat Reader MUI (either track)

  • Product system requirements

  • Products sequenced on a 32-bit machine must be deployed on 32-bit clients and products sequenced on a 64-bit machine must be deployed on 64-bit clients.

Tuning for virtual envs

Tune the installer prior to imaging and deployment.

Tuning helps mitigate performance issues, simplifies the end user experience, and allows you to disable features and behaviors that should not be accessible to end users in an IT-managed environment.

  • Install the latest product.

  • Disable the updater.

  • Accept the EULA on behalf of all users by setting the appropriate registry key.

  • Use SUPPRESSLANGSELECTION on the command line at install time to disable user’s ability to change the language.

  • If the product language should be different than the OS languages, set the language.

  • Supress registration (there are multiple ways: Wizard, cmd line property, PRTK tool).

  • Disable push notifications: Set bToggleNotifications to 0.

  • Disable the Help > Repair Acrobat Installation menu by setting:

    • 32 bit machines: [HKLM\SOFTWARE\Adobe\(product name)\(version)\Installer] "Disable_Repair"

    • 64 bit machines: [HKLM\SOFTWARE\Wow6432Node\Adobe\(product name)\(version)\Installer] "Disable_Repair"

Scrolling performance

If scrolling performance is poor in graphic intensive documents, try the following:

  1. Go to Edit > Preferences > Rendering.

  2. Uncheck Smooth line art and Smooth images. Alternatively, you can set these preferences during pre-deployment configuration:

HKCU\Software\Adobe\Adobe Acrobat\<version>\Originals\bAntialiasGraphics: 0x00000000
HKCU\Software\Adobe\Adobe Acrobat\<version>\Originals\bAntialiasImages: 0x00000000

Distiller performance

  • In some environments, Distiller performance may suffer if the messages.log file becomes too large after a number of Distiller operations. Delete this file periodically. It is located at \Application Data\Adobe\Acrobat\Distiller <version>\messages.log.

  • Remove unused fonts from the Windows installation.

Folder permissions

Protected Mode will only work when the USERS group has the following permissions on the product installation folder: Read and execute, List folder contents, Read. For a default installation, the path might be C:\Program Files (x86)\Adobe\Acrobat Reader DC.

Other settings

There are over 500 other registry preferences documented in the Preference Reference . Use the Wizard or manual/scripted methods to customer the product.

Preparing the environment

Prepare the sequencing machine per Microsoft’s guidelines.

Note

Failure to adhere to the best practices and the following guidelines can cause errors in functionality. You may find it worthwhile to follow the MS example in Microsoft’s Sequencing Guide.

  • Create the following registry DWORD entry with a value of 1 to see the option for selecting PVAD while sequencing: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AppV\Sequencer\Compatibility]EnablePVADControl=1

  • Processes that normally run on your computer can slow down the sequencing process and cause irrelevant data to be gathered during sequencing. Because the Sequencer scans for these and other processes before creating a Virtual Application Package, the following programs should be stopped:

    • Windows Defender

    • Antivirus software

    • Disk Defragmentation Software

    • Windows Search

    • Microsoft Update

    • Any open Windows Explorer session

Creating an App-V Package

Create a template

Templates allow you to control what files become part of the package, and you should exclude unnecessary files. You may wish to create the template after sequencing as described below.

To create a template, start with the provided template, OR perform the following steps:

  1. Launch the Microsoft App-V Sequencer.

  2. Go to Tools > Options.

  3. Choose the Exclusion Items tab.

  4. Choose New.

  5. Add the following folders to the Exclusion Items List:

    • [{Profile}]

    • [{AppData}]

    • [{LocalAppDataLow}]

  6. Close the Options window.

  7. Choose File > Save As Template…

  8. Choose OK when the dialog appears.

  9. Save the file as an .appvt file.

  10. Exit.

Sequence Acrobat Reader

There are two ways to approach sequencing:

  • Use the Microsoft Sequencer UI, and create a template file after you create the package as described below. This method incorporates all the changes included the exclusion list as well as the configuration in the package editor’s advanced tab window.

  • Create the Reader App-V package with powershell command below. Doing so replaces steps 1-21 but does not incorporate the settings in the last steps.

New-AppvSequencerPackage -Name "{Name of Package}" -PrimaryVirtualApplicationDirectory "C:\Program Files
x86)\Adobe\Acrobat Reader (DC|2020|2017|2015)" -Installer "{Absolute path to the installer}" -OutputPath "{the package
location}" -TemplateFilePath "{Path to the template file}"

Manual steps

  1. Start the Microsoft Sequencer.

  2. Choose Go to File > Load Template… and select your saved template (.appvt).

  3. Select Create a new Virtual Application Package > Create Package.

  4. Choose Next.

  5. If there are any warnings on the Prepare Computer screen, correct them.

  6. Choose Next.

  7. On the Type of Application screen, select Standard Application.

  8. Choose Next.

  9. On the Select Installer screen, enter the path to your product installation files (Setup.exe).

  10. Choose Next.

  11. In the Package Name screen, enter an application name (such as Acrobat Reader).

  12. In the PVAD screen, enter the Reader installation path. Install to this location only.

  13. During installation, do the following:

    1. Install to the location that has been entered as PVAD in previous step. This can be done by clicking “Change Destination Folder” Button in the Acrobat Reader Installer.

    2. Follow the on-screen instructions and install the application.

    3. Close the Installer to go back to the Sequencer.

  1. After installation completes, select I am finished installing.

  2. Choose Next.

  3. After the Sequencer collects the system changes, review the Installation Report which detects common sequencing issues. Do not run any Application from the Configure Software screen.

  4. Choose Next.

  5. Choose “Stop Now”

  6. Choose Next.

  7. Select “Continue to modify package without Saving using the package editor”.

  8. Choose Next.

  1. In the Package Editor Window, open the Advanced Tab and check the following checkboxes:

    • Allow COM Objects to interact with Local System.

    • Allow all named objects to interact with Local System.

  2. Verify the files and folders excluded above do not appear in the package:

    • <Package root>\VFS\Profile

    • <Package root>\VFS\LocalAppDataLow

    • <Package root>\VFS\AppData

Embed scripts

  1. Download and unzip the required scripts.

  2. Go to the Package Files tab in the Editor.

  3. Navigate to Package > Scripts.

  4. Right-Click the Scripts folder and choose Add to embed a new script into the package so that they can be leveraged on the client machine. Available scripts include:

    • Publish.ps1: A publish time script which suppresses the Reader updater and also appends the necessary registry keys to the App-V client’s PassThroughPaths for correct functioning.

    • Unpublish.ps1: At unpublish time this script removes the updater key which was created at publish time. The keys added to PassThroughPaths registry at the time of publishing are not removed since those keys also impact the functioning of virtual Acrobat if present on the client machine.

    • Runtime.bat: This run-time script creates the parent registry of the pass-through entries in App-V. This script only works for the domain users and will throw error 534 if a local user tries to open the Virtual Reader App. Use the above script only when the package is published to the domain users.

  1. Save the package and exit.

Post sequencing steps

The DeploymentConfig.xml file resides in the same folder as the .appv file. Modify it as described below.

  1. Create script extension points. It is recommended to publish the package globally. In this case, add the scripts inside the <MachineScripts> tag. The Publish and Unpublish scripts require arguments as shown below.

<MachineScripts>
 <PublishPackage>
  <Path>powershell.exe</Path>
        <Arguments>-f "[{AppVPackageRoot}]\..\Scripts\Publish.ps1" -ChannelName {DC|2020|2017|2015}</Arguments>
  <Wait RollbackOnError="true" Timeout="30"/>
 </PublishPackage >
 <UnpublishPackage>
  <Path>powershell.exe</Path>
  <Arguments>-f "[{AppVPackageRoot}]\..\Scripts\Unpublish.ps1" -ChannelName {DC|2020|2017|2015}</Arguments>
  <Wait RollbackOnError="false" Timeout="30"/>
 </UnpublishPackage>
</MachineScripts>
  1. Set the COM integration mode

<COM Mode="Integrated">
 <IntegratedCOMAttributes OutOfProcessEnabled="true" InProcessEnabled="false" />
</COM>
  1. Set named object interaction. Change all <Objects> tags to false:

<Objects Enabled="false">
  1. Configure <UserScripts> to add Runtime.bat so that it is triggered on the creation of the virtual environment for the package.

<UserScripts>
 <StartVirtualEnvironment  RunInVirtualEnvironment="false">
  <Path>cmd.exe</Path>
  <Arguments>/c "[{AppVPackageRoot}]\..\Scripts\Runtime.bat"</Arguments>
  <Wait RollbackOnError="false"/>
 </StartVirtualEnvironment>
</UserScripts>

Deploying a client package

Prerequisites

  • Enable Scripting on client machines. The Reader Package contains scripts which are executed on the client machine in order to provide a feature rich experience to the end user. The scripts can be enabled via:

Set-AppvClientConfiguration -EnablePackageScripts $true
  • Optional: Enable FeatureLockdown on Clients. To suppress or lock certain features on the client, do one of the following:

    1. Manually create the FeatureLockDown keys on the client machine either by pushing policies from the server or by using publish time script for the Reader package.

    2. Add the keys inside the package itself from the package editor window using the Registry tab. This requires removing the HKEY_LOCAL_MACHINE\SOFTWARE\Policies registry entry from the list of pass-through registry keys at HKEY_LOCAL_MACHINE\SOFTWARE\ Microsoft\AppV\Subsystem\VirtualRegistry on the client machine. Since, the change is machine specific this will impact other virtual applications as well, hence, care must be taken while choosing this step.

Publishing

Publish the package globally: Extension points for the Reader App-V Package require machine-level installation. With App-V 5.0 SP2 or later, publishing globally automatically creates these extensions and Reader behaves like a native application.

Note

User-publish is not supported.

Set-ExecutionPolicy RemoteSigned -Force
Set-AppvClientConfiguration -EnablePackageScripts $true
Add-AppvClientPackage -Path <Path_to_AppV_Package> -DynamicDeploymentConfig <Path_to_DeploymentConfig_xml> | Publish-AppvClientPackage –Global | Mount-AppvClientPackage

Post-publishing verification

To help assure package functionality, verify the changes below appear on the client machine.

  1. The following entries should be present in [HKLM\SOFTWARE\Microsoft\AppV\Subsystem\VirtualRegistry]PassThroughPaths. If they are not present in the registry, add them:

    • HKEY_CURRENT_USER\SOFTWARE\Adobe\Acrobat Reader

    • HKEY_CURRENT_USER\SOFTWARE\Adobe\Adobe Acrobat\{2015|DC}\DiskCabs

    • HKEY_CURRENT_USER\SOFTWARE\Adobe\Adobe Synchronizer

    • HKEY_CURRENT_USER\SOFTWARE\Adobe\CommonFiles

    • HKEY_CURRENT_USER\SOFTWARE\Microsoft\Speech

    • HKEY_CURRENT_USER\SOFTWARE\Lotus\Notes

  2. Verify that the [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Adobe\Acrobat Reader\2015\FeatureLockDown]bUpdater registry entry is present with a value set to 0.

  3. Since, pass-through keys only work when their parent hives are locally available on the machine, HKEY_CURRENT_USER\SOFTWARE\Adobe\Adobe Acrobat\{2015|DC} must be present on the client system. Runtime.bat performs this work for all domain users on the first launch of Reader.

Note

The Runtime.bat method does not work for local users. When such support is needed, do not to put Runtime.bat under <StartVirtualEnvironment> tag in DeploymentConfig.xml; otherwise, local users would would encounter error 534 when Reader opens.

Unpublishing

Since the package creates extension points on system, it is necessary to stop the package before unpublishing and removing it from the client machine. The package should be unpublished globally as follows:

Get-AppvClientPackage -Name "*Adobe Acrobat Reader*" | Stop-AppvClientPackage |
Unpublish-AppvClientPackage -Global | Remove-AppvClientPackage

Patching

Prerequisites

  • The original installer from which the Reader package was created.

  • An original Acrobat Reader App-V Package

  • The latest patch or update for the track that was originally installed.

  • The template that was created in the “Create a template” section above.

  • Close the same processes that were closed when publishing the initial package.

Pre-sequencing steps

The pre-sequencing steps are identical to those for creating an App-V Package.

Create a template

Use the template that was created during the Acrobat Reader Package creation guidelines above.

Sequencing a patch

  1. Start the Microsoft Sequencer.

  2. Choose File > Load Template… and select your saved template (.appvt).

  3. Select Modify Existing Virtual Application Package. A popup will appear on the screen.

  4. Choose the radio button Update Application in existing package.

  5. Choose Next.

  6. Browse to the .appv file of the Virtual Acrobat Reader application package that needs to be patched.

  7. Choose Next.

  8. After the sequencer is done loading the package, it will display the issues if anything is wrong with the machine. If there are no serious issues, choose Next. If there are issues, address those issues and repeat all the above mentioned steps.

  9. Choose Select the installer for the application and browse to the .msp patch file that needs to be applied to the virtual package.

  10. Choose Next. The patch is invoked automatically.

  11. In case the Windows installer asks for the location of the MSI file, point to the location where application installer was copied.

  12. Choose OK. Proceed normally while patching.

  13. After the patch completes, close the patch installer.

  14. Check “I am finished installing” checkbox in the sequencer.

  15. Choose Next.

  16. Choose Next, after the sequencer collects the system changes.

  17. Review the Installation Report which detects common sequencing issues during sequencing.

  18. Choose Next.

  19. Do not go to Configure Screen. Instead, choose “Stop Now” and click Next.

  20. From the Create Package screen, select Continue to modify using Package Editor.

  21. Choose Next.

  22. Choose Close. The Package Editor will open.

  23. Select the Package Files tab and expand <Package Root>\VFS\.

  24. Verify the following the following folders are not present in the package:

    • LocalAppDataLow

    • AppData

    • Profiles

  1. Go to the Advanced Tab and check:

    • Allow COM Objects to interact with Local System

    • Allow all named objects to interact with Local System

  2. The scripts and other files added while creating the package from scratch are lost during patching. Re-add them as described in Sequence Acrobat Reader above.

  3. Choose Menu > File > Save.

  4. Close the Editor.

Post Sequencing Steps

Modify DeploymentConfig.xml as described above.

Known issues

  • Automatic updates or manual end user updates are not supported. App-V updates are pushed by enterprise IT.

  • On-the-fly switching of the default PDF handler (viewer) from within the application is not supported. Handler selection can occur at install time or prior to deployment.

  • PDF previews are not visible in Windows Explorer.

  • Opening a PDF inside Internet Explorer does not work on Win 8.1 and Win 10 when IE’s Enhanced Protected Mode is turned on.