Connect-AzAccount
使用已驗證的帳戶連線到 Azure,以搭配 Az PowerShell 模組中的 Cmdlet 使用。
重要
從 2025 年初開始,使用 Microsoft Entra ID 使用者身分識別進行驗證的 Azure PowerShell 登入需要多重要素驗證 (MFA)。 如需詳細資訊,請參閱 規劃 Azure 和其他系統管理入口網站的必要多重要素驗證。
語法
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
Connect-AzAccount
Cmdlet 會使用已驗證的帳戶連線到 Azure,以搭配 Az PowerShell 模組中的 Cmdlet 使用。 您只能搭配 Azure Resource Manager 要求使用此已驗證的帳戶。 若要新增要與服務管理搭配使用的已驗證帳戶,請使用 Azure PowerShell 模組中的 Add-AzureAccount
Cmdlet。 如果目前使用者找不到內容,則使用者的內容清單會填入前 25 個訂用帳戶中的每個內容。
執行 Get-AzContext -ListAvailable
即可找到為使用者建立的內容清單。 若要略過此內容擴展,請指定 skipContextPopulation switch 參數 Disconnect-AzAccount
與 Azure 帳戶中斷連線。
範例
範例 1:連線到 Azure 帳戶
此範例會連線到 Azure 帳戶。 您必須提供Microsoft帳戶或組織標識碼認證。 如果您的認證已啟用多重要素驗證,您必須使用互動式選項或使用服務主體驗證來登入。
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:使用組織標識碼認證連線到 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 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
與存取令牌相關聯的帳戶標識碼。 在 使用者 驗證流程中,AccountId 是使用者名稱/使用者識別元;在 AccessToken 流程中,它是存取令牌的 AccountId;在 ManagedService 流程中,它是 UserAssigned 身分識別的相關聯用戶端識別碼。 若要使用 SystemAssigned 身分識別,請將此字段保留空白。
類型: | String |
Position: | Named |
預設值: | None |
必要: | True |
接受管線輸入: | False |
接受萬用字元: | False |
-ApplicationId
服務主體的應用程式識別碼。
類型: | String |
Position: | Named |
預設值: | None |
必要: | True |
接受管線輸入: | False |
接受萬用字元: | False |
-AuthScope
登入的選擇性 OAuth 範圍、支援的預先定義值:AadGraph、AnalysisServices、證明、Batch、DataLake、KeyVault、OperationalInsights、Storage、Synapse。 它也支援資源識別碼,例如 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 物件會提供組織標識碼認證的使用者標識碼和密碼,或服務主體認證的應用程式識別碼和秘密。
類型: | 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
適用於 Graph 服務的 AccessToken。
類型: | 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
訂用帳戶名稱或標識碼。
類型: | String |
別名: | SubscriptionName, SubscriptionId |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-Tenant
選擇性租用戶名稱或識別碼。
注意
由於目前 API 的限制,您必須在與企業對企業帳戶連線時使用租使用者識別碼,而不是租用戶名稱。
類型: | 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 |