你当前正在访问 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 |