![](/img/trans.png)
[英]“Install-Module -name AzureAD” fails with error on PS6 with MacOSX
[英]Install-Module -Name AzureAD -Scope CurrentUser -Force
我正在嘗試在 Azure DevOps 中的代理 Windows 2019 Maschine 上安裝帶有 Powershell 的 AzureAD 模塊。 scope 是查詢 Get-AzureADGroupMember 並查看該 Azure AD 組的成員。 運行 DevOps Task 后,maschine 似乎還停留在下面的 state 中,沒有拋出任何狀態。 我錯過了什么嗎?
Install-Module -Name AzureAD -Scope CurrentUser -Force
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
Connect-AzureAD
Get-AzureADGroupMember -ObjectId "xxxxx-xxxxx-xxxxxxxx"
Connect-AzureAD命令需要添加 Credential 才能連接 AzureAD。 默認情況下,服務主體 ARM 連接無法將所需的憑據傳遞給此命令。
要使用 Service Principal ARM Connection 連接 Azure 廣告,您需要添加額外的任務和腳本來實現它。
這是一個例子:
steps:
- task: AzureCLI@2
displayName: 'Azure CLI '
inputs:
azureSubscription: kevin0322
scriptType: ps
addSpnToEnvironment: true
scriptLocation: inlineScript
inlineScript: |
echo "##vso[task.setvariable variable=ARM_CLIENT_ID]$env:servicePrincipalId"
echo "##vso[task.setvariable variable=ARM_CLIENT_SECRET]$env:servicePrincipalKey"
echo "##vso[task.setvariable variable=ARM_TENANT_ID]$env:tenantId"
- powershell: |
az login --service-principal --username $(ARM_CLIENT_ID) --password $(ARM_CLIENT_SECRET) --tenant $(ARM_TENANT_ID)
$aadToken = az account get-access-token --resource-type aad-graph | ConvertFrom-Json
Install-Module -Name AzureAD -Scope CurrentUser -Force
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
Connect-AzureAD -AccountId $(ARM_CLIENT_ID) -TenantId $(ARM_TENANT_ID) -AadAccessToken $aadToken.accessToken
Get-AzureADGroupMember -ObjectId "xxx"
displayName: 'PowerShell Script'
您可以在 Azure CLI 任務中使用服務主體 ARM 連接,然后您可以獲得與服務主體相關的變量(啟用addSpnToEnvironment: true )。
在 Powershell 任務中,您可以使用 Azure CLI 任務中的變量來運行 azure cli 命令以獲取憑證的 aadtoken。
最后,無需手動輸入用戶名和密碼,即可成功執行 Connect-AzureAD 命令。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.