PGPPrefs.xml file location changed in PGP Command Line 10.2.1 and above when using the PGP_HOME_DIR variable


Article ID: 158535


Updated On:


PGP Command Line


The PGP_HOME_DIR variables work differently with PGP Command Line 10.2.1 and above as was previously designed in PGP Command Line 10.2.0 and previous. 

With PGP Command Line 10.2.1 and above, when setting the PGP_HOME_DIR variable as an environment variable as stated in KB TECH149020,the PGPprefs.xml file is saved in %allusersprofile%\PGP Corporation\PGP.

When the PGP_HOME_DIR variable was set using PGP Command Line 10.2.0 and older, the PGPprefs.xml file would use the directory specified.

PGP Keyrings are saved in the Home Directory as expected and behave the same with all versions.


Starting with PGP Command Line 10.2.1, new behavior exists such that setting up a PGP_HOME_DIR variable under User Variables (not System Variables) will allow all users to use the same preference file (PGPprefs.xml), which is located in %allusersprofile%\PGP Corporation\PGP for Windows.

Once the software has been licensed, the PGP Command Line software will use this PGPprefs.xml file which contains the license information, so that each subsequent user will not be required to enter a license manually.

The PGPprefs.xml file always exists in %allusersprofile%\PGP Corporation\PGP, whether or not the PGP_HOME_DIR has been configured.  User preferences get merged with system preferences, and if some value exists in both, user preferences win.  This system-wide preferences file belongs to the system, and as such, any user logging in to the system will be licensed, as long as one profile has been licensed on the system.

This behavior was different in PGP Command Line 10.2.0 and previous.  With PGP Command Line 10.20 and before, When a PGP_HOME_DIR variable was configured, the PGPprefs.xml file, as well as keyrings, exist in the location that was specified.

With PGP Command Line 10.2.1 and later, if a PGP_HOME_DIR variable is used, the PGPprefs.xml file will not reside in the location specified, but rather in %allusersprofile%\PGP Corporation\PGP.  This was designed so that subsequent users logging in to the system would automatically be able to use the same PGPprefs.xml file, and not need to license the software.

PGPprefs.xml Preferences Test Example:

1. Right-click Computer, go to Properties, then click on Advanced system settings, and click on "Environment Variables...", then create a new entry under the "User variables" and *not* under "System" variables for PGP_HOME_DIR.

2. Remove all pre-existing PGP files in %appdata%, %allusersprofile%, and Documents that may have existed in 10.1, or later.

3. Logout of the system, and then log back in.

4. License the PGP command line, and generate keys.

Results Pre 10.2.1:
The PGPprefs.xml file, as well as keyrings are stored in the PGP_HOME_DIR location.

Results Post 10.2.1:
The PGPprefs.xml file *always* exists in %allusersprofile%\PGP Corporation\PGP and must be there in order for the software to be considered licensed and functional.  The keyring files should reside wherever PGP_HOME_DIR is specified for user variables if specified.  There will never be a PGPprefs.xml file in the PGP_HOME_DIR location specified at any time.

TIP: If the PGPprefs.xml file is copied into the PGP_HOME_DIR location, from %allusersprofile%\PGP Corporation\PGP, then the software references both files.  The software will never reference only the PGPprefs.xml in PGP_HOME_DIR location, however. 

In other words, if the PGPPrefs.xml file is renamed to PGPprefs.xml.old in %allusersprofile% the command line becomes unlicensed for the next PGP command that is run. When the next PGP command is run, however, a new PGPprefs.xml file gets created in the %allusersprofile% location, based on the PGPprefs.xml file in the PGP_HOME_DIR location, and subsequent PGP commands are successful.

This functionality was included to allow for many users on a system to only need to license one time and is working by design.