Robert Wilkinson - IT Consultancy for Citrix | Microsoft | VMWare | End User Computing

Adobe Reader MSI Packaging without the bloat

adobe reader 1

MSI Packaging Adobe Reader and removing the bloat

STEP A – Download Customization wizard tool and the Adobe Offline Installer

I have repackaged Adobe reader 11 using the Customization wizard from Adobe.
http://www.adobe.com/support/downloads/thankyou.jsp?ftpID=5515&fileID=5526

Install Customization wizard.

Download Adobe Offline installer EXE and Extract the MSI
ftp://ftp.adobe.com/pub/adobe/reader/win/11.x
Extraction command line
AdbeRdr11xxx_en_US.exe -nos_o”C:\Folder” -nos_ne

STEP B – Customization wizard

Step 1 Personalisation Options:

Open the Customization Wizard, click File / Open Package… and browse to AcroRead.MSI located in the folder that contains the extract Reader setup files. You can change the installation path if required:

adobe reader 2

Step 2 Installation Options:

there a few options to consider here:
• Default viewer for PDF files – if you are installing both Acrobat and Reader on the same machine, which application do you want to open PDF files by default.
• Enable Optimization – Windows Installer will defrag the installation post install, leave this option enabled. [Windows Installer property: ENABLE_OPTIMIZATION]
• Enable Caching of installer files on local hard drive – a copy of the Reader install files will be stored on the target machine ( in %ProgramFiles%\Adobe\Reader xx.x\Setup Files or %ProgramFiles(x86)%\Adobe\Reader xx.x\Setup Files). If you are deploying Reader with a deployment solution or virtualizing Reader, I recommend disabling this option. [Windows Installer property: ENABLE_CACHE_FILES]
• Run installation – run the installer Unattended by default unless your specific deployment requires the installer to run completely silently (you can control this on the command line as well).
• If reboot required at the end of installation – choose Suppress reboot and control reboots with an external process (such as a script or your deployment solution).
adobe reader 4

Step 3 Files and Folders:

additional files (such as a JavaScript file to restrict menu items) can be added here:
adobe reader 5

Step 4 Registry:

add additional Registry values here to control the Reader installation. You can browse the local computer’s Registry to make adding entries simpler.
There are two edits I recommend making – browse to Destination Computer / HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run and modify these startup items, if they exist:
• Adobe ARM
• Adobe Reader Speed Launcher
Right-click each of these entries and choose Modify. Set Action to Remove value. This will prevent the installer from adding these entries and starting unnecessary processes at user logon. This step is very important for Terminal Server / Remote Desktop Session Host environments to reduce the processes that will run in each user’s session.
adobe reader 6

Step 5 Shortcuts:

 for whatever reason, Adobe deems it necessary to add a superfluous shortcut for Reader to the desktop. Don’t forget to remove that here – if you don’t remove the shortcut in the transform, it will be created when you patch Reader.
adobe reader 7

Step 6 Server Locations:

the Server Locations settings allow you to configure additional server location paths to ensure source resiliency for the Windows Installer package.
adobe reader 8

Step 7 Security:

 further information on Adobe Reader and Acrobat security can be found here: Acrobat 9 Security Administration Guide. Options to consider include:
• Enhanced Security Settings: Standalone and Browser (choose Enable & Lock)
• Prevent end-user to add trusted Files and Folders
• Prevent end-user to add trusted Hosts
adobe reader 9

Step 8 Digital Signature:

 the Digital Signature settings allow you to specify the security options (verification, creation, reasons) for digital signatures. Read more about Digital Signatures in the security guide and this document: Digital Signature Validation Cheat Sheet
adobe reader 10

Step 9 EULA:

here you can suppress the display of the End User License Agreement when the user first launches Reader. [Windows Installer property: EULA_ACCEPT]
adobe reader 11

Step 10 Online and Acrobat.com Features:

 access to several features can be controlled here:
• Disable all updates: this will prevent the Adobe Updater from running automatically (but won’t prevent it from installing). The Check for Updates menu option will also be removed.
Warning: It is extremely important to disable Adobe Updater on shared systems such as Terminal Server/Remote Desktop Servers – a standard user can initiate a reboot of a computer if Updater applies a Reader update. This is because the update is applied using Windows Installer which runs in the System context.
• Browser integration can be controlled here – you can force Reader to open PDFs outside of the browser rather than embedded in the browser window
• Various menu items and features (such as Purchase Adobe Acrobat, Digital Editions) can be disabled
• The Product Improvement Program can be disabled
• The Acrobat.com integration in Reader can be disabled
adobe reader 12

Step 11 Comments and Forms:

 control and set options for comments in PDFs and forms.
adobe reader 13

Step 12 File Attachments:

 control the launching of file types from PDF documents. You may want to set this option:
• Default Action for Unspecified File Types: Never launch files of Unspecified Types
adobe reader 14

Step 13 Launch Other Applications:

the Launch Other Applications settings allow you to specify additional applications to be installed with Reader.

adobe reader 15

Step 14 Direct Editor:

if you want to make further edits to the transform file you can do so here; however I often prefer to save the transform and open it with a 3rd party MSI editor.
adobe reader 16

To disable the Adobe Acrobat Update Service introduced with Reader 10.1, navigate to the ServiceInstall table and take one of two actions

• Drop the row ServiceInstall1 to prevent the install of the service
• Change the value of StartType to 3 (manual) or 4 (disabled)

 

adobe reader 17

 

 

 

 

 

 

 

 

Disabling Additional Menu Items

After creating a custom installation there are a few menu items (less than previous versions) that you may want to remove for end-users:

adobe reader 18

These menu items are:
• Help / Online Support… / Knowledge Base
• Help / Online Support… / Adobe Support Programs…
• Help / Online Support… / Adobe User Community…
• Help / Online Support… / Accessibility Resource Center…
• Help / Online Support… / Generate System Report…
• Help / Repair Adobe Reader Installation
Warning: It is extremely important to remove the Repair Adobe Reader Installation menu item on shared systems such as Terminal Server/Remote Desktop Servers – a standard user can initiate a reboot of a computer if the repair kicks in. This is because the repair is applied using Windows Installer which runs in the System context.
Just like previous versions, the only way to disable certain UI elements such as menu items and toolbars is to use JavaScript. This is a two step process – first we need to find out the name of the items we want to disable. To do that you will need to place some JavaScript in a file in the JavaScripts folder where Reader is installed. For example this on x64 Windows, place the file here: %ProgramFiles (x86)%\Adobe\Reader xx.0\Reader\Javascripts. Add the following code into the file and save it as ListItems.js

//ListItems.js
//Open Javascript Console
console.show();
 
//List Toolbar Buttons in the Console
var toolbarItems = app.listToolbarButtons()
for( var i in toolbarItems)
console.println(toolbarItems + “\n”)
 
//List Menu Items in the Console
var menuItems = app.listMenuItems()
for( var i in menuItems)
console.println(menuItems + “\n”)
When you start Reader a list of the user interface elements will be displayed:The list is quite long, but you can use it to control the display of both menu items and buttons.
adobe reader 20
To hide the menu items listed above, save the following code in HideItems.js in the same JavaScripts folder. When Reader is run, the JavaScript will be executed and the items removed.
//HideMenu.js
// [Help – Repair Adobe Reader Installation]
app.hideMenuItem(“DetectAndRepair”);
// [Help – Check for Updates]
app.hideMenuItem(“Updates”);
// [Help – Purchase Adobe Acrobat]
app.hideMenuItem(“Weblink:BuyAcrobat”);
// [Help – Digital Editions]
app.hideMenuItem(“eBook:Digital Edition Services”);
// [Help – Online Support]
app.hideMenuItem(“OnlineSupport”);
// [Help – Online Support – Knowledge Base]
app.hideMenuItem(“KnowledgeBase”);
// [Help – Online Support – Adobe Support Programs]
app.hideMenuItem(“AdobeExpertSupport”);
// [Help – Online Support – Adobe User Community]
app.hideMenuItem(“AdobeUserCommunity”);
// [Help – Online Support – Accessibility Resource Center]
app.hideMenuItem(“AccessOnline”);
// [Help – Online Support – Generate System Report]
app.hideMenuItem(“SystemInformation”);
// [Help – Product Improvement Options]
app.hideMenuItem(“UsageMeasurement”);
// [File – Share Files Using SendNow Online]
app.hideMenuItem(“SPAObject 51”);
// [File – CreatePDF Online]
app.hideMenuItem(“SPAObject 47”);
To deliver the script with the Reader package, use the Files and Folders section in the Customization Wizard. Add the files to Destination Computer / ProgramFilesFolder / Adobe / Reader 10.0 / Reader / JavaScripts (see Step 3 above).
adobe reader 19

Now read part 2 – Adobe reader optimization for Citrix or RDS environments HERE