Configure Azure PowerShell global settings
Azure PowerShell offers various global settings, such as the option to disable breaking change warning messages. Before version 9 of the Az PowerShell module, there was no centralized or detailed method for configuring these global settings.
Centralized configuration
The Az PowerShell module version 9 and higher includes cmdlets for managing the configuration of
global settings for Azure PowerShell. These *-AzConfig
cmdlets are part of the Az.Accounts
PowerShell module:
Granular settings
You can apply settings that are effective within a particular scope. The valid values for the Scope parameter are:
Current User
: The default scope when applying a setting.Process
: The setting is applied only to the current PowerShell session.Default
: A read-only scope where the default value hasn't changed.Environment
: A read-only scope where the value is configured via an environment variable.
Besides scopes, you can apply settings to all Az PowerShell modules or only a single module.
Using the AppliesTo parameter, you can specify how broad you want the setting to be applied. The
value Az
indicates that the setting is applied to all modules that are part of Azure PowerShell.
Configuration options
There are numerous configuration options that you can set with the *-AzConfig
cmdlets. Many of
these configuration options are shown in this section. Run the following command to see a complete
list of the Azure PowerShell configuration options you can set with the *-AzConfig
cmdlets.
Get-AzConfig | Format-List
Upgrade notifications
In-tool notifications for Azure PowerShell version upgrades is a feature released in Az PowerShell module version 10.3.0. When a new version of Azure PowerShell is available, an upgrade notification is displayed in your interactive PowerShell session.
To determine if upgrade notifications are enabled, use the Get-AzConfig
cmdlet with
the CheckForUpgrade parameter, as shown in the following example.
Get-AzConfig -CheckForUpgrade
To enable upgrade notifications for Azure PowerShell, use the Update-AzConfig
cmdlet with the
CheckForUpgrade parameter and $true
for its value, as shown in the following example.
Update-AzConfig -CheckForUpgrade $true
To turn off upgrade notifications, use the Update-AzConfig
cmdlet with the CheckForUpgrade
parameter and $false
for its value, as shown in the following example.
Update-AzConfig -CheckForUpgrade $false
Default subscription
By default, beginning with Az PowerShell module version 12.0.0, if you have access to multiple subscriptions, you're prompted to select an Azure subscription to sign in with.
To prevent being prompted to select a subscription each time you sign in interactively, use the
Update-AzConfig
cmdlet with the DefaultSubscriptionForLogin parameter to set your default
subscription, as shown in the following example.
Update-AzConfig -DefaultSubscriptionForLogin <Subscription ID or Name>
Note
Not to be confused with the subscription of the default context, the DefaultSubscriptionForLogin configuration takes effect only when authenticating to Azure.
Instance discovery
The disable instance discovery setting is designed for situations where the metadata endpoint is
inaccessible, such as in private clouds or Azure Stack environments. Instance discovery involves
retrieving authority metadata from https://login.microsoft.com/
to validate the authority. By
enabling this setting (setting it to true
), you disable both instance discovery and authority
validation. Therefore, it's essential to ensure that the configured authority host is valid and
trustworthy.
To disable both instance discovery and authority validation, enable this setting (set it to true
).
Update-AzConfig -DisableInstanceDiscovery $true
Breaking change warning messages
To disable breaking change warning messages for cmdlets in all Az modules, use the
Update-AzConfig
cmdlet with the DisplayBreakingChangeWarning
parameter, as shown in the
following example:
Update-AzConfig -DisplayBreakingChangeWarning $false
To disable the breaking change warning message specifically for cmdlets in the Az.Compute
module, use the Update-AzConfig
cmdlet with both the DisplayBreakingChangeWarning and
AppliesTo parameters as shown in the following example:
Update-AzConfig -DisplayBreakingChangeWarning $false -AppliesTo Az.Compute
In this scenario, the breaking change warning message remains active for cmdlets in all Az PowerShell modules except Az.Compute.
Azure region identification
Azure customers can choose to deploy resources in several different regions. Sometimes, customers can reduce costs by selecting nearby regions offering the same services. If a nearby region is identified, a message displays the region to choose for future deployments.
To disable the region recommendation messages, use the Update-AzConfig
cmdlet with the
DisplayRegionIdentified parameter, as shown in the following example.
Update-AzConfig -DisplayRegionIdentified $false
For more information about Azure regions, see Choose the right Azure region for you.
Display secrets warning
Azure PowerShell displays a warning message by default beginning with version 12.0.0 to help you protect sensitive information when it identifies a potential secret in the output of a command.
In the following example, the Update-AzConfig
cmdlet is used to disable the warning message.
Update-AzConfig -DisplaySecretsWarning $false
Surveys
When using Azure PowerShell, you might be invited to participate in a survey to tell us about your experience. While we appreciate the insights this data provides, we understand not everyone wants to be prompted to complete a survey.
You can disable being prompted to participate in surveys with the Update-AzConfig
cmdlet, as shown
in the following example.
Update-AzConfig -DisplaySurveyMessage $false
Data collection
By default, Azure PowerShell cmdlets send telemetry data to Microsoft to improve the customer experience. For more information, see our privacy statement: aka.ms/privacy.
Update-AzConfig -EnableDataCollection $false
Error records
By default, Azure PowerShell error records are written to $HOME/.Azure/ErrorRecords
.
To disable persistent error records, use the Update-AzConfig
cmdlet with the
EnableErrorRecordsPersistence parameter, as shown in the following example.
Update-AzConfig -EnableErrorRecordsPersistence $false
Web Account Manager (WAM)
Beginning with Az PowerShell module version 12.0.0, Windows systems use Web Account Manager (WAM), and Linux and macOS systems use browser-based sign-in by default.
To use browser-based sign-in on Windows 10 and later or on Windows Server 2019 and later with Az 12.0.0 and higher, you must disable WAM for use with Azure PowerShell. Use the following command to disable WAM and return to browser-based sign-in, the default before Az 12.0.0.
Update-AzConfig -EnableLoginByWam $false
The new login experience
Beginning with Az PowerShell module version 12.0.0, if you have access to multiple subscriptions, you're prompted to select an Azure subscription to sign in with.
When the new login experience is disabled, and you have access to multiple subscriptions, you're
signed in to the first subscription Azure returns unless you specify a subscription with
Connect-AzAccount
. Commands run against this subscription by default. This behavior can be
dangerous, for example if the first subscription returned is a production environment.
To disable the new login experience, use the Update-AzConfig
cmdlet, as shown in the following
example.
Update-AzConfig -LoginExperienceV2 Off
Replicating settings
To replicate your settings from one environment to another, you use the Export-AzConfig
cmdlet to
export the settings to a JSON file.
Export-AzConfig -Path $HOME\AzConfig.json
To import your settings, use the Import-AzConfig
cmdlet and reference the previously exported
JSON file.
Import-AzConfig -Path $HOME\AzConfig.json
Clearing configuration
To reset the configuration setting of one or more Azure PowerShell global settings to the default,
use the Clear-AzConfig
cmdlet. In the following example, the DefaultSubscriptionForLogin
setting is cleared.
Clear-AzConfig -DefaultSubscriptionForLogin
Azure PowerShell