你当前正在访问 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-AzureAccount Azure PowerShell 模块中的 cmdlet。 如果没有为当前用户找到上下文,则用户的上下文列表将填充其前 25 个订阅中的每个上下文。 可以通过运行 Get-AzContext -ListAvailable来查找为用户创建的上下文列表。 若要跳过此上下文填充,请指定 SkipContextPopulation 开关参数。 执行此 cmdlet 后,可以使用 断开与 Azure 帐户 Disconnect-AzAccount的连接。

示例

示例 1:连接到 Azure 帐户

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

Connect-AzAccount

Please select the account you want to login with.

Retrieving subscriptions for the selection...
[Tenant and subscription selection]

No      Subscription name                       Subscription ID                             Tenant domain name        
----    ------------------------------------    ----------------------------------------    --------------------------
[1]     Subscription1                           xxxx-xxxx-xxxx-xxxx                         xxxxxxxxx.xxxxxxxxxxx.com
[2]     Subscription2                           xxxx-xxxx-xxxx-xxxx                         xxxxxxxxx.xxxxxxxxxxx.com
...
[9]     Subscription9                           xxxx-xxxx-xxxx-xxxx                         xxxxxxxxx.xxxxxxxxxxx.com

Select a tenant and subscription: 1 <requires user's input here>

Subscription name                       Tenant domain name
------------------------------------    --------------------------
Subscription1                           xxxxxxxxx.xxxxxxxxxxx.com

[Announcements]
Share your feedback regarding your experience with `Connect-AzAccount` at: https://aka.ms/azloginfeedback

If you encounter any problem, please open an issue at: https://aka.ms/azpsissue

SubscriptionName     Tenant
-----------------    ------
Subscription1        xxxxxxxxx.xxxxxxxxxxx.com

示例 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 参数指示帐户作为服务主体进行身份验证。

$SecurePassword = Read-Host -Prompt 'Enter a Password' -AsSecureString
$TenantId = 'yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyy'
$ApplicationId = 'zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzz'
$Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $ApplicationId, $SecurePassword
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 = ConvertTo-SecureString -String "****" -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

示例 10:使用 WAM 以交互方式连接

此示例演示如何为 WAM(Web 帐户管理器)启用配置,并使用它连接到 Azure。

Update-AzConfig -EnableLoginByWam $true
Connect-AzAccount

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

参数

-AccessToken

指定访问令牌。

注意

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

类型:String
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-AccountId

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

类型:String
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-ApplicationId

服务主体的应用程序 ID。

类型:String
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-AuthScope

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

类型:String
别名:AuthScopeTypeName
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-CertificatePassword

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

类型:SecureString
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-CertificatePath

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

类型:String
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-CertificateThumbprint

证书哈希或指纹。

类型:String
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-Confirm

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

类型:SwitchParameter
别名:cf
Position:Named
默认值:False
必需:False
接受管道输入:False
接受通配符:False

-ContextName

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

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Credential

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

类型:PSCredential
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-DefaultProfile

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

类型:IAzureContextContainer
别名:AzContext, AzureRmContext, AzureCredential
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Environment

包含 Azure 帐户的环境。

类型:String
别名:EnvironmentName
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-FederatedToken

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

注意

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

类型:String
别名:ClientAssertion
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-Force

使用同名覆盖现有上下文,而不提示。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-GraphAccessToken

AccessToken for Graph 服务。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Identity

使用托管服务标识登录。

类型:SwitchParameter
别名:MSI, ManagedService
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-KeyVaultAccessToken

KeyVault 服务的 AccessToken。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-MaxContextPopulation

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

类型:Int32
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-MicrosoftGraphAccessToken

Microsoft Graph 的访问令牌

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Scope

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

类型:ContextModificationScope
接受的值:Process, CurrentUser
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-SendCertificateChain

指定是否应将 x5c 声明(证书公钥)发送到 STS,以在 Azure AD 中轻松滚动更新证书。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-ServicePrincipal

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

类型:SwitchParameter
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-SkipContextPopulation

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

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-SkipValidation

跳过访问令牌的验证。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Subscription

订阅名称或 ID。

类型:String
别名:SubscriptionName, SubscriptionId
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-Tenant

可选租户名称或 ID。

注意

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

类型:String
别名:Domain, TenantId
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-UseDeviceAuthentication

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

类型:SwitchParameter
别名:DeviceCode, DeviceAuth, Device
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-WhatIf

显示运行该 cmdlet 时会发生什么情况。 cmdlet 未运行。

类型:SwitchParameter
别名:wi
Position:Named
默认值:False
必需:False
接受管道输入:False
接受通配符:False

输入

String

输出

PSAzureProfile