MSI and Cmd-line examples¶
MSI support¶
Adobe Acrobat and Adobe Reader installers are developed using standard Windows Installer technology and Microsoft Installer (MSI) commands were developed by Microsoft.
The required MSI version is 3.1 or higher.
MSI best practices¶
When installing over an existing product, remove the old product first in a separate action.
When scripting MSI actions, do not use
RemoveExistingProducts
afterInstallFinalize
. Doing so results in the installer updating files before removing the old application, and in the event of application removal failure, the installation may be incomplete.Do not use
REINSTALLMODE=amus
which forces all files to be reinstalled regardless of checksum or version. Such usage could result in a mixture of files from the old and new products. The recommended properties arevomus
.Use TARGETDIR on the command line or the AIP user interface to specify an install location other than C: when creating an AIP.
MSI usage¶
Adobe has tested and supports the installation of Acrobat products using the command line. You can use command line methods to install software in many ways, such as typing commands at a command prompt or in a batch script. When using the bootstrapper, command line parameters can be sent to msiexec from within the Setup.ini as well as on the cmd line.
The syntax for msiexec is as follows:
Windows Installer command-line options are not case-sensitive.
Brackets ([]): Optional items
Braces ({}); Set of choices separated by a | from which the user must choose only one. For example: {black|white}:
MSI switches¶
For Microsoft documentation, see https://msdn.microsoft.com/en-us/library/Aa367988.
Command |
Description |
---|---|
{ /?| /h} |
Displays the Windows Installer version and copyright information. |
/a |
Applies the administrative installation option. |
/f |
For product repair. Enables one or more of the command-line options below:
|
/g |
Identifies the language. Syntax: /g LanguageID |
/i |
Installs or configures a product. |
/j |
Advertises a product. If you want to install the application with elevated privileges, use /jm. Syntax:
|
/L |
Specifies the path to the log file. To include the v option in a log file using the wildcard flag, type /L*v at the command prompt. The Windows Installer log file options can also be used with the uninstall and repair processes. For example, use /L*v to set verbose logging.
|
/p |
Applies an update. |
/q |
Sets the user interface level. The modal box is not displayed if the user cancels the installation.
|
/t |
Applies transform to advertised package. Syntax: /t TransformList |
/x |
Uninstalls a product. |
/y |
Calls the system API DllRegisterServer to self-register modules passed on the command line. |
/z |
Calls the system API DllUnRegisterServer to unregister modules passed on the command line. |
Package Code |
Specifies the globally unique identifier of the Windows Installer package. For Acrobat products, this is the GUID. |
Package |
Not supported. Specifies the name of the Windows Installer package file |
/sAll |
Run installer in silent mode. |
/sPB |
Silent mode with minimum UI: show the progress bar only. |
/rs |
Reboot Suppress. Setup.exe will not initiate reboot even if it is required. |
/rps |
Reboot Prompt Suppress. If reboot is required, the system restarts without warning. |
/ini “PATH” |
Relative or absolute path to an alternative (different) Bootstrapper INI file. The CmdLine of alternative INI will be ignored. |
/sl “LANG_ID” |
Set Language, where LANG_ID is the decimal code of the destination installation language. Use it only for the multilingual installer, and make sure that the corresponding language transform file exist in the setup directory. If /sl “LANG_ID” is not set and you are running the multilingual installer interactively (not silently), ‘Choose Setup Language’ dialog will be displayed. |
/msi[Command line] |
Identifies the portion of CmdLine for additional MSIEXEC command line parameters. Everything following /msi is passed to MSIEXEC without analyzing and without any changes. |
MSI properties¶
You can specify MSI properties at install time; for example, to set a company name or suppress rebooting. For a complete list, refer to Microsoft documentation.
Supported MSI properties¶
Property |
Description |
---|---|
ADDLOCAL |
A list of comma delimited features to install locally. The features must be present in the Feature column of the Feature Table. To install all features locally, use ADDLOCAL=ALL on the command line rather than the Property Table to avoid creating an installed package that cannot be correctly removed. |
ALLUSERS |
Determines where configuration information is stored. It is a per machine setting and is set to 1 by default for both Acrobat and Reader. |
COMPANYNAME |
The name of the company installing the product. |
INSTALLDIR |
Specifies a non-default installation directory. |
INSTALLLEVEL |
The property specifies an installation level threshold. A feature is installed only if the value in the Level field of the Feature table is less than or equal to the current INSTALLLEVEL value. 100 is the default install level. |
REBOOT |
Force or suppress rebooting. |
REINSTALL |
List of features to reinstall. Setting this property results in a required reboot for 9.x. For 10.x products, let the MSI engine decide what to reinstall; doing so should result in fewer reboots. |
REINSTALLMODE |
A string containing letters that specify the type of reinstallation to perform. Use of the |
REMOVE |
List of features to be removed. You can pass either |
TARGETDIR |
Specifies the root destination directory for the installation. TARGETDIR must be the name of one root in the Directory table. There may be only a single root destination directory. During an administrative installation this property specifies the location to copy the installation package. Do not create an AIP at the root directory. Use the AIP UI or this property on the command line to install from a directory other than C:, D:, etc. |
TRANSFORMS |
Property that is used to specify what transform (.mst) files should be applied to the package. In some cases, this will be the MST you created via the Customization Wizard. Use with /i, not /p. |
USERNAME |
The username of the person performing the installation. |
Unsupported MSI properties¶
SHORTFILENAMES is no longer supported. Microsoft has removed this property from the Windows 7 Logo Requirements.
Troubleshooting msiexec¶
When using msiexec, if you receive an “Incorrect command line parameters” error message, verify that:
Your syntax is correct.
There is a space before the log file name if you use the syntax for writing a log file.
You have not placed a /qn switch between the /i switch and the name of the MSI file.
Note
For more information about msiexec options, refer to https://technet.microsoft.com/en-us/library/cc759262(WS.10).aspx#BKMK_Install.
Bootstrapper installation¶
The bootstrapper Setup.exe file uses setup.ini as its configuration file. As you customize the installer with the Wizard, the Setup.ini file automatically updates. The Setup.exe file uses Setup.ini as it’s configuration file. Before deployment, open Setup.ini, verify it contains all the properties you need, and edit it as neccessary.
Setup.ini contains two sections:
[Startup]: Setup.exe first executes the Adobe flags for
CmdLine
. Do not place Adobe properties or MSI switches here; for example, you can use/sAll
but not/qb!+
in this section.[Product] Setup.exe then reads the [Product] section. There may be multiple [Product] sections depending what the EXE should invoke (other MSI’s or EXE’s). The
CmdLine
should only contain values supported by the item the EXE invokes. For example, when invoking an MSI (msi=AcroPro.msi
), you can only use space-separated Adobe properties (flag/value pairs connected by an = sign) and MSI switches; for example, you can use/qb!+
but not/sAll
in this section.
MST usage in Setup.ini
[Startup]
CmdLine=/sAll /sl "1031"
RequireOS=Win XP
[Product]
CmdLine=TRANSFORMS="AcroPro.mst" /qb!+
msi=AcroPro.msi
Languages=1033;1031
1033=English (United States)
1031=German (Germany)
Command line examples¶
These examples demonstrate different ways to install Acrobat products using the command line. Keep in mind the following:
The examples use specific products and versions. Modify the command line to suit your environment, changing paths and file names as appropriate.
It is possible to apply patches during an initial installation.
For multilingual installers, use the selected language transform in the command line (for example, 1036.mst for the French language).
Transforms in the installer media directory do not require fully qualified paths in the command.
Patches do require fully qualified paths.
Note
As of July 2010, Reader update installers on the Reader Download Center for Tier 1 are chained by default. If you are downloading the product from the RDC rather than the download site, just download the latest file and you’ll get all patches in one file.
Repairing the install¶
C:\Windows\system32\msiexec.exe /I {AC76BA86-1033-FFFF-7760-0C0F074E4100} REINSTALL="ALL" REINSTALLMODE="omus" /qb
Listing installed updates¶
Occasionally, certain bugs or features may be impacted by a specific OS version. You can use a Windows utility to list installed Windows udpates.
After installing the utility, run the following:
wmic qfe list full /format:table >c:\updates.txt
Installing Acrobat 2019 with logging¶
The silent install below creates an install log. Note that IGNOREVCRT64 can only be used when the C++ x64 Runtime is not required.
msiexec /I AcroPro.msi IGNOREVCRT64=1 transforms=AdobeAcrobatProfDC2019-191220034-100-R01-B01.mst /qn /l*v %applogsc%\ AdobeAcrobatProfDC2019-191220034-100-R01-B01_Install.log
Language selection¶
You can use the LANG_LIST property to specify languages. Specify both the language code and the language-specific MST:
msiexec /i <path\AcroPro.msi> LANG_LIST=en_US TRANSFORMS="1033.mst" /qb
For details, see Adobe Properties
Creating an AIP¶
To create an administrative installation for a customized installer, use /a and TRANSFORMS. For example, the following installs Acrobat Pro with an MST file created with the Customization Wizard:
msiexec /a <path\AcroPro.msi> TRANSFORMS="AcroPro.mst"
To create an administrative installation for a major release installer and a patch, use /a and /p. For example, the following installs Acrobat Pro 10.0 with the 10.1.0 patch:
msiexec /a <path\AdbeRdr1000_lang_ID.msi> /p AdbeRdrUpd1010_en_US.msp
Note
It’s always a good idea to keep the files in the same directory and cd to that directory so that you can run the commands from there.
TRANSFORMS and .mst¶
Installer modifications created in the Customization Wizard are saved to an MST file. The MST must be referenced in the .ini file or on the command line. This example installs a customized version of Acrobat Professional, displays a basic user interface, and enables verbose logging.
Installing with an MST
msiexec /i <path\AcroPro.msi> TRANSFORMS="AcroPro.mst" /qb /L*v c:\acrobat.log
LEIDs and post-install prtk usage¶
Once an ETLA serial is provided, the LEID changes for unserialized commands. For both tracks, it becomes V7{}AcrobatETLA-12-Win-GM
(on Windows) and V7{}AcrobatETLA-12-Mac-GM
(on Macintosh). For example, you would use the “ESR” LEID version to initially serialize, and you would use the “ETLA” version to deactivate or perform any other action with the prtk utility.
Silent uninstalls¶
A silent removal runs without any dialog boxes to show the user that the removal is running. All products use the same command line and the same installer file for silent updates:
msiexec /x {[Package Name | Product Code]} /qn
Note
You must include the braces in the command line. An MSI package name (e.g. AcroRead.msi) can be substituted for the Product Code. For Acrobat products, the Product Code is the GUID.
Browser integration¶
Pass either ReaderBrowserIntegration
or AcrobatBrowserIntegration
to REMOVE
when a product is already deployed and a subsequent deployment requires disabling browser integration. For example:
msiexec /i {AC76BA86-7AD7-1033-7B44-A91000000001} REMOVE=ReaderBrowserIntegration /q
To re-enable Browser Integration, use ADDLOCAL:
msiexec /i {AC76BA86-7AD7-1033-7B44-A91000000001} ADDLOCAL=ReaderBrowserIntegration /q
Removing product features¶
Because Acrobat products support MSI technology, it is possible to the use the REMOVE property to uninstall any component as described in the Microsoft documentation: “The value of the REMOVE property is a list of features delimited by commas that are to be removed. The features must be present in the Feature column of the Feature table. Note that if you use REMOVE=ALL on the command line, the installer removes all features having an install level greater than 0. In this case, the installer does not remove features having an install level of 0. For more information about the install level of features see https://msdn.microsoft.com/en-us/library/windows/desktop/aa371194%28v=vs.85%29.aspx.”
Removing any feature via REMOVE that is not specifically identified as a unique component in the user interface during a custom install is not supported. Moreover, some components have subcomponents which don’t appear in the UI, and admins are advised to inspect the installer tables and test their installs prior to deployment.
The command line is in the form of:
Msiexec /i <Package.msi|ProductCode> REMOVE="(product name)"
Where <Package.msi|ProductCode>
is either the full path to the original MSI file or the ProductCode of this product.
APTEE example for products¶
For standalone Acrobat deployments which not part of a Creative Cloud packager install, download the Adobe Provisioning Toolkit Enterprise Edition (APTEE). The APTEE is a platform-specific executable file:
Windows: adobe_prtk.exe
Mac: adobe_prtk
Continuous track¶
For more details, refer to the PRTK documentation.
Serialization; machine online¶
Use following PRTK command to serialize Acrobat with ETLA serial number:
adobe_prtk --tool=Serialize --leid=V7{}AcrobatCont-12-Win|Mac-GM --serial=<ETLA serial number> [--regsuppress=ss]
Un-serialization; ETLA serial license; machine online¶
adobe_prtk --tool=UnSerialize --leid=V7{}AcrobatETLA-12-Win|Mac-GM --deactivate
Note
Once an ETLA serial is provided, the LEID changes for unserialized commands. For both tracks, it becomes V7{}AcrobatETLA-12-Win-GM
(on Windows) and V7{}AcrobatETLA-12-Mac-GM
(on Macintosh). For example, you would use the “ESR” LEID version to initially serialize, and you would use the “ETLA” version to deactivate or perform any other action with the prtk utility.
Un-serialization; Pro Subscription license; machine online¶
adobe_prtk --tool=UnSerialize --leid=V6{}AcrobatPro-AS2-Win|Mac-GM --deactivate
Un-serialization; Standard Subscription license; machine online¶
adobe_prtk --tool=UnSerialize --leid=V6{}AcrobatStd-AS2-Win|Mac-GM --deactivate
Replace an existing serial number¶
adobe_prtk --tool=ReplaceSN --serialize=LEID --serial=<new serial number>
Type 1 Exception; machine offline¶
The command to generate request code for both Windows and Mac is:
adobe_prtk --tool=Type1Exception --generate --serial=<ETLA serial number>
Type1 Exception; machine offline¶
Note
Cannot be used with Acrobat Classic 2020.
The command to get an accept request code for both Windows and Mac is:
adobe_prtk --tool=Type1Exception --accept --serial=<ETLA serial number>
--responsecode=<response code generated from an online machine>
--leid=V7{}AcrobatCont-12-Win|Mac- GM
Type1 Exception; Un-serialize; machine offline¶
adobe_prtk --tool=UnSerialize --leid=V7{}AcrobatCont-12-Win|Mac-GM --deactivate
Type 2 Exception; Command to generate prov.xml; machine offline¶
adobe_prtk --tool=VolumeSerialize --generate --serial=<ETLA serial>
--leid=V7{}AcrobatCont-12-Win|Mac-GM [--regsuppress=ss] [--eulasuppress]
[--provfilepath=<Absolute path>]
Type 2 Exception; machine offline¶
On Windows and Mac, serialize Acrobat using the prov.xml
as follows:
adobe_prtk --tool=VolumeSerialize [--provfile=<Absolute path to prov.xml>] [--stream]
Type 2 Exception: Un-serialize Acrobat¶
adobe_prtk --tool=UnSerialize --leid=V7{}AcrobatETLA-12-Win|Mac-GM --deactivate
Command to suppress EULA¶
adobe_prtk --tool=EULA --leid=V7{}AcrobatCont-12-Win|Mac-GM --eulasuppress
Classic track¶
Serialization; machine online¶
Use following PRTK command to serialize Acrobat with ETLA/Perpetual serial number:
adobe_prtk --tool=Serialize --leid=V7{}AcrobatESR-12-Win|Mac-GM
--serial=<ETLA/Perpetual serial number> [--regsuppress=ss]
Un-serialization; ETLA license; machine online¶
adobe_prtk --tool=UnSerialize --leid=V7{}AcrobatETLA-12-Win|Mac-GM --deactivate
Un-serialization : Continuous (Retail/Volume) license; machine online¶
adobe_prtk --tool=UnSerialize --leid=V7{}AcrobatESR-12-Win|Mac-GM --deactivate
Un-serialization; Pro subscription license; machine online¶
adobe_prtk --tool=UnSerialize --leid=V6{}AcrobatPro-AS2-Win|Mac-GM --deactivate
Un-serialization; Standard Subscription license; machine online¶
adobe_prtk --tool=UnSerialize --leid=V6{}AcrobatStd-AS2-Win|Mac-GM --deactivate
Type 1 Exception; ; machine offline¶
Generate a request code with the following (both Win and Mac):
adobe_prtk --tool=Type1Exception --generate --serial=<ETLA/Perpetual serial number>
Type1 Exception; machine offline¶
Command to accept request code
adobe_prtk --tool=Type1Exception --accept --serial=<ETLA/Perpetual serial>
--responsecode=<response code generated from an online machine>
--leid=V7{}AcrobatESR-12-Win|Mac-GM
Type1 Exception : Un-serialize (ETLA/Perpetual serial); machine offline¶
adobe_prtk --tool=UnSerialize --leid=V7{}AcrobatESR-12-Win|Mac-GM --deactivate
Type 2 Exception; generate prov.xml; machine online¶
adobe_prtk --tool=VolumeSerialize --generate --serial=<ETLA/Perpetual serial>
--leid=V7{}AcrobatESR-12-Win|Mac-GM [--regsuppress=ss] [--eulasuppress]
[--provfilepath=<Absolute path >]
Type 2 Exception; serialize Acrobat with prov.xml; machine offline¶
adobe_prtk --tool=VolumeSerialize [--provfile=<Absolute path to prov.xml>] [--stream]
Type 2 Exception; Un-serialize Acrobat; ETLA license¶
adobe_prtk --tool=UnSerialize --leid=V7{}AcrobatETLA-12-Win|Mac-GM --deactivate
Type 2 Exception; Un-serialize Acrobat; Continuous track & volume license¶
adobe_prtk --tool=UnSerialize --leid=V7{}AcrobatESR-12-Win|Mac-GM --deactivate
Suppress EULA¶
adobe_prtk --tool=EULA --leid=V7{}AcrobatESR-12-Win|Mac-GM --eulasuppress