[英]Azure Functions - Value cannot be null. (Parameter 'connectionString')
[英]Azure Devops: value cannot be null, parameter token
我在Azure DevOps中運行Azure Powershell任務。 在腳本中,我使用以下命令
Get-AzureRmADUser -UserPrincipalName $adusernameNewPermission
但是我的發布管道失敗,並顯示以下錯誤代碼
##[error]Value cannot be null.
Parameter name: token
首先,我認為該命令沒有正確的上下文或足夠的權限,因此我添加了默認配置文件。
Get-AzureRmADUser -DefaultProfile (Get-AzureRmContext) -UserPrincipalName $adusernameNewPermission
如果我打印該命令的輸出,則GetAzureRmContext確實轉到了正確的上下文。
該命令本身在本地運行時(使用我自己的用戶帳戶)沒有任何問題,因此,我認為其標題的唯一原因是服務連接無權執行該操作。 但是,我的用戶帳戶對租戶的權限最少,而天藍色devops中的服務連接具有更多的權限。
問題的根源讓我發瘋。 這是什么意思? 沒有合理的錯誤消息:(有人遇到相同的問題,還是知道我缺少什么?
PS:$ adusernameNewPermission變量的工作方式就像我說的一樣,完全相同的代碼可以在本地計算機上完美運行,唯一的區別是登錄的用戶。
您是否嘗試過使用Get-azureaduser? 這是一條命令,需要針對Azure AD對功能進行身份驗證。
$azurePassword = ConvertTo-SecureString $env:client_secret -AsPlainText -Force
$psCred = New-Object System.Management.Automation.PSCredential($env:clientid , $azurePassword)
Connect-AzAccount -Credential $psCred -TenantId $env:tenantid -ServicePrincipal
如果您正在使用“腳本文件路徑”的腳本類型,請檢查您是否沒有嘗試傳遞任何參數(例如-token)。
我會嘗試2件事來恢復基礎。 這將讓您知道它是否實際上是AzDO服務主體,以及在管道中使用的對象類型。
Get-AzureRmADUser -UserPrincipalName "achahbar@stankoverflow.com"
#OR
$UPN = "achahbar@stankoverflow.com"
Get-AzureRmADUser -UserPrincipalName $UPN
假設這可行並且根據變量包含的內容,您只需要將UPN / Email對象傳遞到命令中:
Get-AzureRmADUser -UserPrincipalName $adusernameNewPermission.UPN
Get-AzADUser
並再次測試步驟1.
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.