System administrators deploying ArcGIS Pro across a team or an organization may need to control application settings on behalf of their users. ArcGIS Pro allows administrators to set default values for a select number of application settings. You can also lock these settings so that users cannot change them from the value set by the administrator.
There are three basic steps to control application settings in your ArcGIS Pro deployment:
- Create a Pro.settingsConfig file.
- Post the file to a directory or share accessible by users.
- Configure the user machines to use the deployed file.
Create a Pro.settingsConfig file
To control application settings, you must first create a Pro.settingsConfig file. These files are written in the Extensible Markup Language (XML) format but have the file extension .settingsConfig instead of .xml.
If you have access to an advanced XML editor such as Microsoft Visual Studio, you can use an XML Schema Definition (XSD) file during the creation process. The XSD file for the settingsConfig format is available as part of the ArcGIS Pro installation. Find the ProSettings.xsd file in the \Resources\XmlSchema directory of the ArcGIS Pro installation location.
To create a Pro.settingsConfig file, you must first create a blank file in your text or XML editor of choice. Then copy and paste the contents of the sample below and edit it as needed.
- For settings you want to use, remove the commenting syntax (<!-- and -->) at the start and end of the row.
- For settings you don't want to use, you can either leave the commenting syntax or delete the row.
Note:
This sample does not include all the properties listed for some settings. For example, in the Map and Scene settings, the DefaultSpatialReference setting does not list all the properties found in the discussion of that setting.
<?xml version="1.0" encoding="UTF-8"?>
<ArcGISProSettings xmlns="http://schemas.esri.com/ProSettings"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://schemas.esri.com/ProSettings .\prosettings.xsd">
<Animation>
<!-- <ShowPresetDraft isLocked="true">true</ShowPresetDraft> -->
<!-- <ShowPresetYouTube isLocked="true">true</ShowPresetYouTube> -->
<!-- <ShowPresetX isLocked="true">true</ShowPresetX> -->
<!-- <ShowPresetInstagram isLocked="true">true</ShowPresetInstagram> -->
<!-- <ShowPresetGIF isLocked="true">true</ShowPresetGIF> -->
<!-- <ShowPresetHD720 isLocked="true">true</ShowPresetHD720> -->
<!-- <<ShowPresetHD1080 isLocked="true">true</ShowPresetHD1080> -->
</Animation>
<Application>
<!-- <UseLocalHelp isLocked="false">true</UseLocalHelp> -->
<!-- <UseSpellCheck isLocked="false">true</UseSpellCheck> -->
<!-- <UseDarkTheme isLocked="false">true</UseDarkTheme> -->
</Application>
<Authentication>
<!-- <AuthConnection isLocked="true"> -->
<!-- <Name>Connection1Name</Name> -->
<!-- <Type>MicrosoftEntraID</Type> -->
<!-- <Environment>AzureGlobal</Environment> -->
<!-- <TenantID>example.domain.com</TenantID> -->
<!-- <ClientID>123456789</ClientID> -->
<!-- </AuthConnection> -->
</Authentication>
<Catalog>
<!-- <EnableIndexing isLocked="true">false</EnableIndexing> -->
<!-- <IndexNetworkConnections isLocked="true">false</IndexNetworkConnections> -->
<!-- <MetadataCanDeleteGPHistory isLocked="true">false</MetadataCanDeleteGPHistory> -->
<!-- <MetadataStyle isLocked="true">ISO 19115-3 XML Schema Implementation</MetadataStyle> -->
<!-- <SearchIndexes isLocked="true">\\dataserver1\WorldData_SearchIndex</SearchIndexes> -->
<!-- <SkipServerConnections isLocked="true">true</SkipServerConnections> -->
</Catalog>
<ColorManagement>
<!-- <WorkingColorSpaceForNewItems isLocked="true">CMYK</WorkingColorSpaceForNewItems> -->
<!-- <EnableColorManagement isLocked="true">true</EnableColorManagement> -->
<!-- <RGBColorProfile isLocked="true">sRGB IEC61966-2.1</RGBColorProfile> -->
<!-- <CMYKColorProfile isLocked="true">U.S. Web Coated (SWOP) v2</CMYKColorProfile> -->
<!-- <ColorConversionRule isLocked="true">PreserveColorValues</ColorConversionRule> -->
<!-- <RenderingIntent isLocked="true">Perceptual</RenderingIntent>-->
<!-- <EnableDefaultBlackPointCompensation isLocked="true">false</EnableDefaultBlackPointCompensation> -->
</ColorManagement>
<Display>
<!-- <AntialiasingMode isLocked="true">Fast</AntialiasingMode> -->
<!-- <TextAntialiasingMode isLocked="true">Force</TextAntialiasingMode> -->
<!-- <StereoscopicMode isLocked="true">Off</StereoscopicMode> -->
<!-- <RenderingMode isLocked="true">DirectX</RenderingMode> -->
<!-- <RenderingQuality isLocked="true">1</RenderingQuality> -->
<!-- <EnableVSync isLocked="true">true</EnableVSync> -->
<!-- <EnableRenderingAntialiasing isLocked="true">true</EnableRenderingAntialiasing> -->
<!-- <LocalCacheFolderPath isLocked="true">C:\Users\<name>\AppData\Local\ESRI\Local Caches</LocalCacheFolderPath> -->
<!-- <ClearCacheWhenAppClosing isLocked="true">false</ClearCacheWhenAppClosing> -->
<!-- <UseSquarePrimitive isLocked="true">false</UseSquarePrimitive> -->
</Display>
<Editing>
<!-- <RequireExplicitStartEditing isLocked="false">false</RequireExplicitStartEditing> -->
<!-- <SelectWorkspace isLocked="true">true</SelectWorkspace> -->
<!-- <ShowSaveDialog isLocked="true">true</ShowSaveDialog> -->
<!-- <ShowDiscardDialog isLocked="true">true</ShowDiscardDialog> -->
<!-- <EnforceAttributeValidation isLocked="true">false</EnforceAttributeValidation> -->
<!-- <WarnOnDelete isLocked="true">true</WarnOnDelete> -->
<!-- <NewLayersEditable isLocked="true">false</NewLayersEditable> -->
<!-- <AutoSaveEdits isLocked="true">time,1</AutoSaveEdits> -->
<!-- <SaveWithProject isLocked="true">false</SaveWithProject> -->
<!-- <WarnOnDiscardAttribute isLocked="false">apply</WarnOnDiscardAttribute> -->
<!-- <WarnOnDiscardGeometry isLocked="false">prompt</WarnOnDiscardGeometry> -->
<!-- <MoveToolActivationAfterPaste isLocked="true">true</MoveToolActivationAfterPaste> -->
<!-- <AutoApplyAttributes isLocked="true">true</AutoApplyAttributes> -->
</Editing>
<GeodatabaseReplication>
<!-- <LogFilePath isLocked="true">C:\Users\%USERNAME%\AppData\Local\ESRI\ProReplicaActivityLog.dat</LogFilePath> -->
<!-- <LogLevel isLocked="true">Debug</LogLevel> -->
</GeodatabaseReplication>
<Geoprocessing>
<!-- <ToolParameters> -->
<!-- <Parameter toolName="calculatefield" toolboxAlias="management" name="expression_type" isLocked="true">ARCADE</Parameter> -->
<!-- </ToolParameters> -->
<!-- <AddHistoryItem isLocked="true">true</AddHistoryItem> -->
<!-- <AddOutputsToMap isLocked="true">true</AddOutputsToMap> -->
<!-- <BlockNonSystemPythonToolbox isLocked="true">Ask</BlockNonSystemPythonToolbox> -->
<!-- <EnableUndo isLocked="true">true</EnableUndo> -->
<!-- <MessageLevelCommandSyntax isLocked="true">true</MessageLevelCommandSyntax> -->
<!-- <MessageLevelDiagnostics isLocked="true">true</MessageLevelDiagnostics> -->
<!-- <MessageLevelProjectionTransformation isLocked="true">true</MessageLevelProjectionTransformation> -->
<!-- <RecordGPHistoryInMetadata isLocked="true">true</RecordGPHistoryInMetadata> -->
<!-- <RemoveOverwrittenLayers isLocked="true">true</RemoveOverwrittenLayers> -->
</Geoprocessing>
<Layout>
<!-- <TemplatePath isLocked="true">C:\Users\<name>\AppData\Local\LayoutTemplates</TemplatePath> -->
</Layout>
<MapAndScene>
<!-- <DefaultBasemapJson isLocked="true">FromPortal</DefaultBasemapJson> -->
<!-- <DefaultSceneBasemapJson isLocked="true">FromPortal</DefaultSceneBasemapJson> -->
<!-- <LayerVisibleByDefault isLocked="true">true</LayerVisibleByDefault> -->
<!-- <DefaultSpatialReference isLocked="false">Not set</DefaultSpatialReference> -->
<!-- <ConfirmTransformation isLocked="true">true</ConfirmTransformation> -->
<!-- <IgnoreBasemapForAutoTransform isLocked="true">true</IgnoreBasemapForAutoTransform> -->
<!-- <DefaultLabelEngine isLocked="true">Standard</DefaultLabelEngine> -->
<!-- <AddDefaultElevationSource isLocked="true">true</AddDefaultElevationSource> -->
<!-- <CustomElevationSourceXml isLocked="false">Not set</CustomElevationSourceXml> -->
<!-- <AreUnRegisteredDatasetsAndCsvBackwardCompatible isLocked="true">false</AreUnRegisteredDatasetsAndCsvBackwardCompatible> -->
<!-- <ManageFeatureCaching isLocked="true">true</ManageFeatureCaching> -->
<!-- <CheckMapsWhenDeleting isLocked="true">None</CheckMapsWhenDeleting> -->
<!-- <CheckMapsWhenRenaming isLocked="true">None</CheckMapsWhenRenaming> -->
<!-- <ContentsPanePointLegendPatchSizeLimit isLocked="true">48</ContentsPanePointLegendPatchSizeLimit> -->
</MapAndScene>
<Navigation>
<!-- <ShowFlashCrosshairs isLocked="true">true</ShowFlashCrosshairs> -->
</Navigation>
<Projects>
<!-- <CreateBackup isLocked="true">true</CreateBackup> -->
<!-- <BackupIntervalMinutes isLocked="true">3</BackupIntervalMinutes> -->
<!-- <LocalProject> -->
<!-- <CustomDefaultLocation isLocked="true">C:\Testing\Team_Defaults\Team_Projects</CustomDefaultLocation> -->
<!-- <CreateProjectInNewFolder isLocked="false">false</CreateProjectInNewFolder> -->
<!-- <HomeFolder isLocked="false">c:\Testing\Team_Defaults\Team_Data</HomeFolder> -->
<!-- <DefaultGeodatabase isLocked="true">C:\Testing\Team_Defaults\Team_Data\Team_EGDB.sde</DefaultGeodatabase> -->
<!-- <DefaultToolbox isLocked="true">C:\Testing\Team_Defaults\Team_Data\Team_Tools.atbx</DefaultToolbox> -->
<!-- </LocalProject> -->
</Projects>
<Report>
<!-- <ReportCustomTemplatePath isLocked="true">C:\Users\<name>\Documents\ArcGIS\ReportTemplates</ReportCustomTemplatePath> -->
</Report>
<Selection>
<!-- <KeepInvisibleFeaturesSelected isLocked="true">false</KeepInvisibleFeaturesSelected> -->
</Selection>
<ShareDownload>
<!-- <StagingPath isLocked="true">C:\Users\%USERNAME%\AppData\Local\ESRI\ArcGISPro\Staging\SharingProcesses</StagingPath> -->
<!-- <UnpackingProjectPackageOption isLocked="true">0</UnpackingProjectPackageOption> -->
<!-- <UnpackingProjectPackagePath isLocked="true">C:\Users\%USERNAME%\Documents\ArcGIS\Packages</UnpackingProjectPackagePath> -->
<!-- <UnpackingOtherPackagesOption isLocked="true">0</UnpackingOtherPackagesOption> -->
<!-- <UnpackingOtherPackagesPath isLocked="false">C:\Users\%USERNAME%\Documents\ArcGIS\Packages</UnpackingOtherPackagesPath> -->
<!-- <OfflineMapsOption isLocked="true">0</OfflineMapsOption>-->
<!-- <OfflineMapsPath isLocked="true">C:\Users\%USERNAME%\Documents\ArcGIS\OfflineMaps</OfflineMapsPath> -->
<!-- <MapLayerPresetsPath isLocked="false">C:\Users\%USERNAME%\AppData\Roaming\Esri\ArcGISPro\ExportPresets</MapLayerPresetsPath> -->
</ShareDownload>
<Table>
<!-- <DisableAddRow isLocked="true">true</DisableAddRow> -->
<!-- <AllowWebLinks isLocked="true">false</AllowWebLinks> -->
<!-- <SupportedUriSchemeList isLocked="true">ftp,ftps,html</SupportedUriSchemeList> -->
<!-- <AllowFileLinks isLocked="true">false</AllowFileLinks> -->
<!-- <SupportedFileExtensionList isLocked="true">.7z,.csv</SupportedFileExtensionList> -->
<!-- <FontName isLocked="true">Segoe UI</FontName> -->
<!-- <FontSize isLocked="true">11</FontSize> -->
</Table>
<TextAndGraphics>
<!-- <DefaultFontName isLocked="true">Tahoma</DefaultFontName> -->
<!-- <DefaultFontStyle isLocked="false">Regular</DefaultFontStyle> -->
<!-- <DefaultFontVariationSettings isLocked="true">true</DefaultFontVariationSettings> -->
</TextAndGraphics>
<Versioning>
<!-- <ConnectionDefaultVersioningType isLocked="false">Branch</ConnectionDefaultVersioningType> -->
<!-- <ReconcileDefineConflicts isLocked="true">ByRow</ReconcileDefineConflicts> -->
<!-- <ReconcileResolveConflicts>FavorTargetVersion</ReconcileResolveConflicts> -->
<!-- <ShowReconcileDialog>true</ShowReconcileDialog> -->
<!-- <ShowConflictDialog>true</ShowConflictDialog> -->
</Versioning>
</ArcGISProSettings>
Caution:
When you save the Pro.settingsConfig file, ensure that your XML or text editor does not add a .txt or .xml file extension to the end of the file, as this prevents ArcGIS Pro from correctly loading the file.
Deploy Pro.settingsConfig
After authoring a Pro.settingsConfig file, you must deploy it to a location accessible by all ArcGIS Pro client machines. This is typically a file share on a server. However, you can also place the file on the local disk of the client machine if that serves your purposes.
Set the file permissions on the share or folder that hosts Pro.settingsConfig to be read-write only for the administrator who created the file and read-only for the users of the ArcGIS Pro client machines. If you don't protect the file with proper permissions, users can alter the values inside the Pro.settingsConfig file, changing the defaults and locked settings for all users.
Example: On a file server accessible by all ArcGIS Pro client machines, create a share such as \\dataserver1\ProSettings. Set the Pro.settingsConfig share permissions so that client users have read-only access, and copy the Pro.settingsConfig file to the share.
You can update the deployed Pro.settingsConfig file as the needs of your organization change. To alter the settings control scheme, update the shared file or copy a new one in its place. ArcGIS Pro client machines start consuming the new file the next time ArcGIS Pro is started on the machines.
Configure user machines to use Pro.settingsConfig
The final step in controlling user settings is to configure each ArcGIS Pro client machine to use the Pro.settingsConfig file from its deployed location. Once configured, the client machine checks the file during each ArcGIS Pro application startup, changing the user's settings accordingly.
There are two ways to set client machines to use the file. Both options require you to provide the path to the network share or local folder that contains the deployed Pro.settingsConfig file.
It is recommended that you set the ADMIN_SETTINGS_PATH command line parameter during an ArcGIS Pro silent installation.
The second way to configure client machines is by editing the Windows Registry. Use this option if ArcGIS Pro is already deployed or if you don't want to do a silent installation. To configure the client machines, create a string value called AdminSettingsPath in HKEY_LOCAL_MACHINE\SOFTWARE\ESRI\ArcGISPro\Settings. Set the value data to the path of the network share or local folder that contains the deployed Pro.settingsConfig file. Following the example above, you would set the value data to \\dataserver1\ProSettings.
When you use the ADMIN_SETTINGS_PATH installation parameter or create the AdminSettingsPath entry in the registry, the setting is stored in the HKEY_LOCAL_MACHINE registry hive. Changing the value requires administrative permissions on the machine. This secures the setting, ensuring that nonadministrator users cannot opt out of the settings control set by their administrator.
When configuring machines through the registry, it is recommended that you use a system deployment tool instead of manually changing each machine with regedit.exe. Common system deployment tools include Windows Active Directory Group Policy, MicrosoftSCCM, and Microsoft PowerShell DSC. You can find detailed instructions for installing and configuring ArcGIS Pro with these tools in the ArcGIS 10.8, ArcGIS Pro 2.5, and ArcGIS Earth 1.10 Enterprise Deployment technical paper.
Settings locking and precedence of defaults
The settings control mechanism allows administrators to both provide settings defaults and lock settings to those values.
Setting locking is controlled with the isLocked XML attribute. When set to true, the user on the ArcGIS Pro client machine cannot change the setting's value. It is locked to the value set by the administrator in the Pro.settingsConfig file.
Example: The EnableIndexing setting
<EnableIndexing isLocked="true">false</EnableIndexing>
In this example, the EnableIndexing element corresponds to the Index items toggle button, which you can access by clicking Settings from the start page or the Project tab, and clicking Options > Indexing. EnableIndexing is set to false, which sets the Index items toggle button to the off position. Since isLocked is set to true, the application disables the control and shows a message that the setting has been locked.
If you set the isLocked attribute to false, you can control the default setting, but users can change it as needed.
Example: The UseLocalHelp setting
<UseLocalHelp isLocked="false">true</UseLocalHelp>
In this example, the UseLocalHelp element corresponds to the Help Source setting, which you can access by clicking Settings from the start page or the Project tab, and clicking Options > General. UseLocalHelp is set to true, so new installations of ArcGIS Pro default to Offline help from your computer. Since the isLocked attribute is set to false, the user can change the setting at a later time.
Note:
Defaults for unlocked settings are only used by new installations of ArcGIS Pro. If you configure a machine to use a Pro.settingsConfig file after the user has already run ArcGIS Pro, the defaults in the file are not used because the user has already established the standard defaults. You can force settings by setting isLocked="true" inside the Pro.settingsConfig file.
In addition, if an application setting corresponds to an option that can be reset on the Options dialog box, the setting in the Pro.settingsConfig file is applied when the user clicks Reset .
Remove application settings
To remove application settings from a machine, delete the AdminSettingsPath registry value in HKEY_LOCAL_MACHINE\SOFTWARE\ESRI\ArcGISPro\Settings. The next ArcGIS Pro session will reflect default application settings.
Available application settings
A complete list of application settings and where they belong in the Pro.settingsConfig file can be found in Settings available for administrator control.