你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Connect-AzAccount

使用经过身份验证的帐户连接到 Azure,以用于 Az PowerShell 模块中的 cmdlet。

语法

Connect-AzAccount
       [-Environment <String>]
       [-Tenant <String>]
       [-AccountId <String>]
       [-Subscription <String>]
       [-AuthScope <String>]
       [-ContextName <String>]
       [-SkipContextPopulation]
       [-MaxContextPopulation <Int32>]
       [-UseDeviceAuthentication]
       [-Force]
       [-Scope <ContextModificationScope>]
       [-DefaultProfile <IAzureContextContainer>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Connect-AzAccount
       [-Environment <String>]
       -Credential <PSCredential>
       [-ServicePrincipal]
       -Tenant <String>
       [-Subscription <String>]
       [-AuthScope <String>]
       [-ContextName <String>]
       [-SkipContextPopulation]
       [-MaxContextPopulation <Int32>]
       [-Force]
       [-Scope <ContextModificationScope>]
       [-DefaultProfile <IAzureContextContainer>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Connect-AzAccount
       [-Environment <String>]
       -Credential <PSCredential>
       [-Tenant <String>]
       [-Subscription <String>]
       [-AuthScope <String>]
       [-ContextName <String>]
       [-SkipContextPopulation]
       [-MaxContextPopulation <Int32>]
       [-Force]
       [-Scope <ContextModificationScope>]
       [-DefaultProfile <IAzureContextContainer>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Connect-AzAccount
       [-Environment <String>]
       -CertificateThumbprint <String>
       -ApplicationId <String>
       [-ServicePrincipal]
       -Tenant <String>
       [-Subscription <String>]
       [-AuthScope <String>]
       [-ContextName <String>]
       [-SkipContextPopulation]
       [-MaxContextPopulation <Int32>]
       [-Force]
       [-SendCertificateChain]
       [-Scope <ContextModificationScope>]
       [-DefaultProfile <IAzureContextContainer>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Connect-AzAccount
       [-Environment <String>]
       -ApplicationId <String>
       [-ServicePrincipal]
       -Tenant <String>
       [-Subscription <String>]
       [-ContextName <String>]
       [-SkipContextPopulation]
       [-MaxContextPopulation <Int32>]
       [-Force]
       -FederatedToken <String>
       [-Scope <ContextModificationScope>]
       [-DefaultProfile <IAzureContextContainer>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Connect-AzAccount
       [-Environment <String>]
       -ApplicationId <String>
       [-ServicePrincipal]
       -Tenant <String>
       [-Subscription <String>]
       [-ContextName <String>]
       [-SkipContextPopulation]
       [-MaxContextPopulation <Int32>]
       [-Force]
       [-SendCertificateChain]
       -CertificatePath <String>
       [-CertificatePassword <SecureString>]
       [-Scope <ContextModificationScope>]
       [-DefaultProfile <IAzureContextContainer>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Connect-AzAccount
       [-Environment <String>]
       [-Tenant <String>]
       -AccessToken <String>
       [-GraphAccessToken <String>]
       [-MicrosoftGraphAccessToken <String>]
       [-KeyVaultAccessToken <String>]
       -AccountId <String>
       [-Subscription <String>]
       [-ContextName <String>]
       [-SkipValidation]
       [-SkipContextPopulation]
       [-MaxContextPopulation <Int32>]
       [-Force]
       [-Scope <ContextModificationScope>]
       [-DefaultProfile <IAzureContextContainer>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Connect-AzAccount
       [-Environment <String>]
       [-Tenant <String>]
       [-AccountId <String>]
       [-Identity]
       [-Subscription <String>]
       [-AuthScope <String>]
       [-ContextName <String>]
       [-SkipContextPopulation]
       [-MaxContextPopulation <Int32>]
       [-Force]
       [-Scope <ContextModificationScope>]
       [-DefaultProfile <IAzureContextContainer>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]

说明

Connect-AzAccount cmdlet 使用经过身份验证的帐户连接到 Azure,以便与 Az PowerShell 模块中的 cmdlet 配合使用。 只能将此经过身份验证的帐户用于 Azure 资源管理器请求。 若要添加用于服务管理的经过身份验证的帐户,请使用Add-AzureAccountAzure PowerShell模块中的 cmdlet。 如果未找到当前用户的上下文,则用户的上下文列表将填充其前 25 个订阅中的每个上下文。 可以通过运行来 Get-AzContext -ListAvailable找到为用户创建的上下文列表。 若要跳过此上下文填充,请指定 SkipContextPopulation 开关参数。 执行此 cmdlet 后,可以使用 断开与 Azure 帐户 Disconnect-AzAccount的连接。

示例

示例 1:连接到 Azure 帐户

此示例连接到 Azure 帐户。 必须提供 Microsoft 帐户或组织 ID 凭据。 如果为凭据启用了多重身份验证,则必须使用交互式选项登录或使用服务主体身份验证。

Connect-AzAccount

Account                SubscriptionName TenantId                Environment
-------                ---------------- --------                -----------
azureuser@contoso.com  Subscription1    xxxx-xxxx-xxxx-xxxx     AzureCloud

示例 2:使用组织 ID 凭据连接到 Azure

仅当用户未启用多重身份验证时,此方案才有效。 第一个命令提示符输入用户凭据并将其存储在变量中 $Credential 。 第二个命令使用存储在中的 $Credential凭据连接到 Azure 帐户。 此帐户使用组织 ID 凭据通过 Azure 进行身份验证。

$Credential = Get-Credential
Connect-AzAccount -Credential $Credential

Account                SubscriptionName TenantId                Environment
-------                ---------------- --------                -----------
azureuser@contoso.com  Subscription1    xxxx-xxxx-xxxx-xxxx     AzureCloud

示例 3:使用服务主体帐户连接到 Azure

第一个命令将服务主体凭据存储在变量中 $Credential 。 第二个命令使用存储在变量中的 $Credential 服务主体凭据连接指定的 Azure 租户。 ServicePrincipal switch 参数指示帐户作为服务主体进行身份验证。

$Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $ApplicationId, $SecuredPassword
Connect-AzAccount -ServicePrincipal -TenantId $TenantId -Credential $Credential

Account                SubscriptionName TenantId                Environment
-------                ---------------- --------                -----------
xxxx-xxxx-xxxx-xxxx    Subscription1    xxxx-xxxx-xxxx-xxxx     AzureCloud

示例 4:使用交互式登录连接到特定租户和订阅

此示例连接到具有指定租户和订阅的 Azure 帐户。

Connect-AzAccount -Tenant 'xxxx-xxxx-xxxx-xxxx' -SubscriptionId 'yyyy-yyyy-yyyy-yyyy'

Account                SubscriptionName TenantId                Environment
-------                ---------------- --------                -----------
azureuser@contoso.com  Subscription1    xxxx-xxxx-xxxx-xxxx     AzureCloud

示例 5:使用托管服务标识进行连接

此示例使用主机环境的托管服务标识 (MSI) 进行连接。 例如,从具有已分配 MSI 的虚拟机登录到 Azure。

Connect-AzAccount -Identity
Set-AzContext -Subscription Subscription1

Account                SubscriptionName TenantId                Environment
-------                ---------------- --------                -----------
MSI@50342              Subscription1    xxxx-xxxx-xxxx-xxxx     AzureCloud

示例 6:使用托管服务标识登录名和 ClientId 进行连接

此示例使用 myUserAssignedIdentity 的托管服务标识进行连接。 它将用户分配的标识添加到虚拟机,然后使用用户分配标识的 ClientId 进行连接。 有关详细信息,请参阅在 Azure VM 上配置 Azure 资源的托管标识

$identity = Get-AzUserAssignedIdentity -ResourceGroupName 'myResourceGroup' -Name 'myUserAssignedIdentity'
Get-AzVM -ResourceGroupName contoso -Name testvm | Update-AzVM -IdentityType UserAssigned -IdentityId $identity.Id
Connect-AzAccount -Identity -AccountId $identity.ClientId # Run on the virtual machine

Account                SubscriptionName TenantId                Environment
-------                ---------------- --------                -----------
yyyy-yyyy-yyyy-yyyy    Subscription1    xxxx-xxxx-xxxx-xxxx     AzureCloud

示例 7:使用证书进行连接

此示例使用基于证书的服务主体身份验证连接到 Azure 帐户。 必须使用指定的证书创建用于身份验证的服务主体。 有关创建自签名证书并为其分配权限的详细信息,请参阅使用Azure PowerShell创建具有证书的服务主体

$Thumbprint = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
$TenantId = 'yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyy'
$ApplicationId = '00000000-0000-0000-0000-00000000'
Connect-AzAccount -CertificateThumbprint $Thumbprint -ApplicationId $ApplicationId -Tenant $TenantId -ServicePrincipal

Account                      SubscriptionName TenantId                        Environment
-------                      ---------------- --------                        -----------
xxxxxxxx-xxxx-xxxx-xxxxxxxxx Subscription1    yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyy AzureCloud

Account          : xxxxxxxx-xxxx-xxxx-xxxxxxxx
SubscriptionName : MyTestSubscription
SubscriptionId   : zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzz
TenantId         : yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyy
Environment      : AzureCloud

示例 8:使用 AuthScope 进行连接

AuthScope 用于支持数据平面资源比 ARM 资源增强身份验证的方案,例如存储需要 MFA,但 ARM 没有。 指定 AuthScope 后,例如存储,Connect-AzAccount首先使用存储范围 https://storage.azure.com/登录,然后以无提示方式要求 ARM 令牌。

Connect-AzAccount -AuthScope Storage

Account                SubscriptionName TenantId                Environment
-------                ---------------- --------                -----------
yyyy-yyyy-yyyy-yyyy    Subscription1    xxxx-xxxx-xxxx-xxxx     AzureCloud

示例 9:使用证书文件进行连接

此示例使用基于证书的服务主体身份验证连接到 Azure 帐户。 由其 CertficatePath指定的证书文件应同时包含证书和私钥作为输入。

$securePassword = $plainPassword | ConvertTo-SecureString -AsPlainText -Force
$TenantId = 'yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyy'
$ApplicationId = 'zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzz'
Connect-AzAccount -ServicePrincipal -ApplicationId $ApplicationId -TenantId $TenantId -CertificatePath './certificatefortest.pfx' -CertificatePassword $securePassword

Account                     SubscriptionName TenantId                        Environment
-------                     ---------------- --------                        -----------
xxxxxxxx-xxxx-xxxx-xxxxxxxx Subscription1    yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyy AzureCloud

参数

-AccessToken

指定访问令牌。

注意

访问令牌是一种凭据类型。 应采取适当的安全预防措施,使其保密。 访问令牌也会超时,并可能会阻止长时间运行的任务完成。

Type:String
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-AccountId

Default (UserWithSubscriptionId) 参数集中登录的帐户 ID/用户 ID/用户名; AccessToken 参数集中访问令牌的帐户 ID; ManagedService 参数集中托管服务的帐户 ID。 可以是托管服务资源 ID,也可以是关联的客户端 ID。 若要使用系统分配的标识,请将此字段留空。

Type:String
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-ApplicationId

服务主体的应用程序 ID。

Type:String
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-AuthScope

登录的可选 OAuth 范围,支持的预定义值:AadGraph、AnalysisServices、证明、Batch、DataLake、KeyVault、OperationalInsights、Storage、Synapse。 它还支持资源 ID,例如 https://storage.azure.com/

Type:String
Aliases:AuthScopeTypeName
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-CertificatePassword

访问 pkcs#12 证书文件所需的密码。

Type:SecureString
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-CertificatePath

pkcs#12 格式的 certficate 文件的路径。

Type:String
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-CertificateThumbprint

证书哈希或指纹。

Type:String
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

提示你在运行 cmdlet 之前进行确认。

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

-ContextName

此登录名的默认 Azure 上下文的名称。 有关 Azure 上下文的详细信息,请参阅Azure PowerShell上下文对象

Type:String
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Credential

指定 PSCredential 对象。 有关 PSCredential 对象的详细信息,请键入 Get-Help Get-CredentialPSCredential 对象提供组织 ID 凭据的用户 ID 和密码,或者服务主体凭据的应用程序 ID 和机密。

Type:PSCredential
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-DefaultProfile

用于与 Azure 通信的凭据、帐户、租户和订阅。

Type:IAzureContextContainer
Aliases:AzContext, AzureRmContext, AzureCredential
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Environment

包含 Azure 帐户的环境。

Type:String
Aliases:EnvironmentName
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-FederatedToken

指定由另一个标识提供者提供的令牌。 必须先将此令牌中的颁发者和使用者配置为由 ApplicationId 信任。

注意

联合令牌是一种凭据类型。 应采取适当的安全预防措施,使其保密。 联合令牌也会超时,并可能会阻止长时间运行的任务完成。

Type:String
Aliases:ClientAssertion
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Force

在不提示的情况下覆盖具有相同名称的现有上下文。

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-GraphAccessToken

AccessToken for Graph 服务。

Type:String
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Identity

使用托管服务标识登录。

Type:SwitchParameter
Aliases:MSI, ManagedService
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-KeyVaultAccessToken

KeyVault 服务的 AccessToken。

Type:String
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-MaxContextPopulation

登录后填充上下文的最大订阅编号。 默认值为 25。 若要填充上下文的所有订阅,请设置为 -1。

Type:Int32
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-MicrosoftGraphAccessToken

访问 Microsoft Graph 的令牌

Type:String
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Scope

确定上下文更改的范围,例如,更改仅适用于当前进程,还是应用于此用户启动的所有会话。

Type:ContextModificationScope
Accepted values:Process, CurrentUser
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-SendCertificateChain

指定是否应将证书) 的 x5c 声明 (公钥发送到 STS,以实现 Azure AD 中的简单证书滚动更新。

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-ServicePrincipal

指示此帐户通过提供服务主体凭据进行身份验证。

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-SkipContextPopulation

如果未找到上下文,则跳过上下文填充。

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-SkipValidation

跳过访问令牌的验证。

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Subscription

订阅名称或 ID。

Type:String
Aliases:SubscriptionName, SubscriptionId
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

-Tenant

可选租户名称或 ID。

注意

由于当前 API 的限制,在使用企业到企业 (B2B) 帐户进行连接时,必须使用租户 ID 而不是租户名称。

Type:String
Aliases:Domain, TenantId
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-UseDeviceAuthentication

使用设备代码身份验证,而不是浏览器控件。

Type:SwitchParameter
Aliases:DeviceCode, DeviceAuth, Device
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

显示在此 cmdlet 运行的情况下将会发生什么。 此 cmdlet 未运行。

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

输入

String

输出

PSAzureProfile