Connect-AzAccount

使用已驗證的帳戶 連線 至 Azure,以搭配 Az PowerShell 模組中的 Cmdlet 使用。

Syntax

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>]

Description

Cmdlet 會 Connect-AzAccount 使用已驗證的帳戶連線到 Azure,以搭配 Az PowerShell 模組中的 Cmdlet 使用。 您只能搭配 Azure Resource Manager 要求使用此已驗證的帳戶。 若要新增要與服務管理搭配使用的已驗證帳戶,請使用 Add-AzureAccount Azure PowerShell 模組中的 Cmdlet。 如果目前使用者找不到內容,則使用者的內容清單會填入前 25 個訂用帳戶中的每個內容。 執行 即可找到 Get-AzContext -ListAvailable為使用者建立的內容清單。 若要略過此內容母體擴展,請指定 SkipContextPopulation 參數。 執行此 Cmdlet 之後,您可以使用 中斷與 Azure 帳戶 Disconnect-AzAccount的連線。

範例

範例 1:連線 至 Azure 帳戶

此範例會連線到 Azure 帳戶。 您必須提供 Microsoft 帳戶或組織識別碼認證。 如果您的認證已啟用多重要素驗證,您必須使用互動式選項或使用服務主體驗證來登入。

Connect-AzAccount

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

範例 2:使用組織標識碼認證 連線 至 Azure

只有當使用者未開啟多重要素驗證時,此案例才有效。 第一個命令會提示用戶認證,並將其儲存在變數中 $Credential 。 第二個命令會使用 儲存在 中的 $Credential認證連線到 Azure 帳戶。 此帳戶會使用組織標識碼認證向 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 參數表示帳戶會驗證為服務主體。

$SecurePassword = ConvertTo-SecureString -String "Password123!" -AsPlainText -Force
$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 之後,例如 儲存體,連線-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 "Password123!" -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

指定存取令牌。

警告

存取令牌是一種認證類型。 您應該採取適當的安全性預防措施,使其保持機密。 存取令牌也會逾時,而且可能會防止長時間執行的工作完成。

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

-AccountId

[帳戶標識符] / [用戶標識符] / [用戶名稱] 以在 Default 中登入 (UserWithSubscriptionId) 參數集;AccessToken 參數集中存取令牌的帳戶標識碼;ManagedService 參數集中受控服務的帳戶標識碼。 可以是受控服務資源標識符,或相關聯的用戶端標識符。 若要使用系統指派的身分識別,請將此欄位保留空白。

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

-ApplicationId

服務主體的應用程式識別碼。

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

-AuthScope

登入的選擇性 OAuth 範圍、支援的預先定義值:AadGraph、AnalysisServices、證明、Batch、DataLake、KeyVault、OperationalInsights、儲存體、Synapse。 它也支援資源識別碼,例如 https://storage.azure.com/

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

-CertificatePassword

存取 pkcs#12 憑證檔案所需的密碼。

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

-CertificatePath

pkcs#12 格式的 certficate 檔案路徑。

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

此登入的預設 Azure 內容名稱。 如需 Azure 內容的詳細資訊,請參閱 Azure PowerShell 內容物件

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 物件會提供組織標識符認證的使用者標識碼和密碼,或服務主體認證的應用程式標識碼和秘密。

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

-DefaultProfile

用於與 Azure 通訊的認證、帳戶、租用戶和訂用帳戶。

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

-Environment

包含 Azure 帳戶的環境。

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

-FederatedToken

指定由另一個識別提供者提供的令牌。 此令牌中的簽發者和主體必須先設定為ApplicationId信任。

警告

同盟令牌是一種認證類型。 您應該採取適當的安全性預防措施,使其保持機密。 同盟令牌也會逾時,而且可能會防止長時間執行的工作完成。

Type:String
Aliases:ClientAssertion
Position:Named
Default value:None
Required:True
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

適用於 Graph 服務的 AccessToken。

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

-MaxContextPopulation

登入後填入內容的訂用帳戶數目上限。 預設值為 25。 若要填入內容的所有訂用帳戶,請將 設定為 -1。

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

-MicrosoftGraphAccessToken

Microsoft Graph 的存取令牌

Type:String
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

-SendCertificateChain

指定是否應將 x5c 宣告(憑證的公鑰)傳送至 STS,以在 Azure AD 中輕鬆變換憑證。

Type:SwitchParameter
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

訂用帳戶名稱或標識碼。

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

-Tenant

選擇性租用戶名稱或識別碼。

注意

由於目前 API 的限制,您必須在與企業對企業帳戶連線時使用租使用者識別碼,而不是租用戶名稱。

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

-UseDeviceAuthentication

使用裝置程式代碼驗證,而不是瀏覽器控制項。

Type:SwitchParameter
Aliases:DeviceCode, DeviceAuth, Device
Position:Named
Default value:None
Required:False
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

輸出

PSAzureProfile