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

Connect-AzureRmAccount

使用经过身份验证的帐户连接 Azure,以便与 Azure 资源管理器 cmdlet 请求一起使用。

警告

截至 2024 年 2 月 29 日,AzureRM PowerShell 模块已正式弃用。 为了确保持续获得支持和更新,建议用户从 AzureRM 迁移到 Az PowerShell 模块。

尽管 AzureRM 模块仍可能正常运行,但它不再维护或受支持,但会根据用户的自由裁量权和风险继续使用任何继续使用模块。 有关过渡到 Az 模块的指导,请参阅我们的迁移资源

语法

Connect-AzureRmAccount
       [-Environment <String>]
       [[-Credential] <PSCredential>]
       [-TenantId <String>]
       [-Subscription <String>]
       [-ContextName <String>]
       [-SkipContextPopulation]
       [-Force]
       [-Scope <ContextModificationScope>]
       [-DefaultProfile <IAzureContextContainer>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Connect-AzureRmAccount
       [-Environment <String>]
       [-Credential] <PSCredential>
       [-ServicePrincipal]
       -TenantId <String>
       [-Subscription <String>]
       [-ContextName <String>]
       [-SkipContextPopulation]
       [-Force]
       [-Scope <ContextModificationScope>]
       [-DefaultProfile <IAzureContextContainer>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Connect-AzureRmAccount
       [-Environment <String>]
       -CertificateThumbprint <String>
       -ApplicationId <String>
       [-ServicePrincipal]
       -TenantId <String>
       [-Subscription <String>]
       [-ContextName <String>]
       [-SkipContextPopulation]
       [-Force]
       [-Scope <ContextModificationScope>]
       [-DefaultProfile <IAzureContextContainer>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Connect-AzureRmAccount
       [-Environment <String>]
       [-TenantId <String>]
       -AccessToken <String>
       [-GraphAccessToken <String>]
       [-KeyVaultAccessToken <String>]
       -AccountId <String>
       [-Subscription <String>]
       [-ContextName <String>]
       [-SkipValidation]
       [-SkipContextPopulation]
       [-Force]
       [-Scope <ContextModificationScope>]
       [-DefaultProfile <IAzureContextContainer>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Connect-AzureRmAccount
       [-Environment <String>]
       [-TenantId <String>]
       [-AccountId <String>]
       [-Identity]
       [-ManagedServicePort <Int32>]
       [-ManagedServiceHostName <String>]
       [-ManagedServiceSecret <SecureString>]
       [-Subscription <String>]
       [-ContextName <String>]
       [-SkipContextPopulation]
       [-Force]
       [-Scope <ContextModificationScope>]
       [-DefaultProfile <IAzureContextContainer>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]

说明

连接-AzureRmAccount cmdlet 使用经过身份验证的帐户连接到 Azure,以用于 Azure 资源管理器 cmdlet 请求。 只能在 Azure 资源管理器 cmdlet 中使用此经过身份验证的帐户。 若要添加用于服务管理 cmdlet 的经过身份验证的帐户,请使用 Add-AzureAccount 或 Import-AzurePublish设置File cmdlet。 如果没有为当前用户找到上下文,此命令将使用其每个订阅(前 25 个)订阅的上下文填充用户的上下文列表。 可以通过运行“Get-AzureRmContext -ListAvailable”找到为用户创建的上下文列表。 若要跳过此上下文填充,可以使用“-SkipContextPopulation”开关参数运行此命令。 执行此 cmdlet 后,可以使用 Disconnect-AzureRmAccount 从 Azure 帐户断开连接。

示例

示例 1:使用交互式登录连接到 Azure 帐户

PS C:\> Connect-AzureRmAccount

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

此命令连接到 Azure 帐户。 若要使用此帐户运行 Azure 资源管理器 cmdlet,必须在提示符下提供 Microsoft 帐户或组织 ID 凭据。 如果为凭据启用了多重身份验证,则必须使用交互式选项登录或使用服务主体身份验证。

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

PS C:\> $Credential = Get-Credential
PS C:\> Connect-AzureRmAccount -Credential $Credential

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

第一个命令将提示输入用户凭据(用户名和密码),然后将其存储在$Credential变量中。 第二个命令使用存储在$Credential中的凭据连接到 Azure 帐户。 此帐户使用组织 ID 凭据通过 Azure 资源管理器进行身份验证。 不能使用多重身份验证或 Microsoft 帐户凭据来使用此帐户运行 Azure 资源管理器 cmdlet。

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

PS C:\> $Credential = Get-Credential

PS C:\> Connect-AzureRmAccount -Credential $Credential -Tenant "xxxx-xxxx-xxxx-xxxx" -ServicePrincipal
Account                SubscriptionName TenantId                Environment
-------                ---------------- --------                -----------
xxxx-xxxx-xxxx-xxxx    Subscription1    xxxx-xxxx-xxxx-xxxx     AzureCloud

第一个命令获取服务主体凭据(应用程序 ID 和服务主体机密),然后将其存储在$Credential变量中。 第二个命令使用存储在指定租户$Credential中的服务主体凭据连接到 Azure。 ServicePrincipal switch 参数指示帐户作为服务主体进行身份验证。

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

PS C:\> Connect-AzureRmAccount -Tenant "xxxx-xxxx-xxxx-xxxx" -SubscriptionId "yyyy-yyyy-yyyy-yyyy"
Account                SubscriptionName TenantId                Environment
-------                ---------------- --------                -----------
azureuser@contoso.com  Subscription1    xxxx-xxxx-xxxx-xxxx     AzureCloud

此命令连接到 Azure 帐户,并配置了 AzureRM PowerShell,以便默认为指定的租户和订阅运行 cmdlet。

示例 5:使用托管服务标识登录添加帐户

PS C:\> Connect-AzureRmAccount -MSI

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

此命令使用主机环境的托管服务标识进行连接(例如,如果使用分配的托管服务标识在 VirtualMachine 上执行),这将允许代码使用该分配的标识登录)

示例 6:使用证书添加帐户

# For more information on creating a self-signed certificate
# and giving it proper permissions, please see the following:
# https://docs.microsoft.com/en-us/azure/active-directory/develop/howto-authenticate-service-principal-powershell
PS C:\> $Thumbprint = "0SZTNJ34TCCMUJ5MJZGR8XQD3S0RVHJBA33Z8ZXV"
PS C:\> $TenantId = "4cd76576-b611-43d0-8f2b-adcb139531bf"
PS C:\> $ApplicationId = "3794a65a-e4e4-493d-ac1d-f04308d712dd"
PS C:\> Connect-AzureRmAccount -CertificateThumbprint $Thumbprint -ApplicationId $ApplicationId -Tenant $TenantId -ServicePrincipal

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

Account          : 3794a65a-e4e4-493d-ac1d-f04308d712dd
SubscriptionName : MyTestSubscription
SubscriptionId   : 85f0f653-1f86-4d2c-a9f1-042efc00085c
TenantId         : 4cd76576-b611-43d0-8f2b-adcb139531bf
Environment      : AzureCloud

此命令使用基于证书的服务主体身份验证连接到 Azure 帐户。 应已使用给定证书创建用于身份验证的服务主体。

参数

-AccessToken

指定访问令牌。

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

-AccountId

访问令牌的帐户 ID

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

-ApplicationId

SPN

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

-CertificateThumbprint

证书哈希 (指纹)

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

-Confirm

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

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

-ContextName

此登录名中默认上下文的名称。 登录后,你将能够按此名称选择此上下文。

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

-Credential

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

Type:PSCredential
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-DefaultProfile

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

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

-Environment

包含要登录的帐户的环境

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

-Force

使用同名覆盖现有上下文(如果有)。

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

-GraphAccessToken

AccessToken for Graph 服务

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

-Identity

在当前环境中使用托管服务标识登录。

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

-KeyVaultAccessToken

KeyVault 服务的 AccessToken

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

-ManagedServiceHostName

托管服务登录的主机名

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

-ManagedServicePort

托管服务登录的端口号

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

-ManagedServiceSecret

机密,用于某种类型的托管服务登录。

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

-Scope

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

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

-ServicePrincipal

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

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

-SkipContextPopulation

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

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

-SkipValidation

跳过访问令牌验证

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

-Subscription

订阅名称或 ID

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

-TenantId

可选域名或租户 ID。 域名在所有登录情况下都不起作用。 对于云解决方案提供商(CSP)登录,需要租户 ID。

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

-WhatIf

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

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

输入

String

参数:订阅(ByValue)

输出

PSAzureProfile