【发布时间】:2019-09-10 13:48:59
【问题描述】:
我正在 Azure DevOps 中运行 Azure Powershell 任务。 在脚本中我使用以下命令
Get-AzureRmADUser -UserPrincipalName $adusernameNewPermission
但我的发布管道失败并出现以下错误代码
##[error]Value cannot be null.
Parameter name: token
首先我认为该命令没有正确的上下文或足够的权限,所以我添加了默认配置文件。
Get-AzureRmADUser -DefaultProfile (Get-AzureRmContext) -UserPrincipalName $adusernameNewPermission
如果我打印该命令的输出,GetAzureRmContext 确实进入了正确的上下文。
命令本身在本地运行时没有任何问题(使用我自己的用户帐户)所以我认为它的标题的唯一原因是服务连接无权执行该操作。但是我的用户帐户对租户的权限最少,而 azure devops 中的服务连接具有更多权限。
问题出在这个问题上,这让我发疯了。它是什么意思?没有合理的错误信息:( 有人遇到同样的问题或知道我错过了什么吗?
PS:$adusernameNewPermission 变量的工作方式就像我说的完全相同的代码在我的本地机器上完美运行,唯一的区别是登录的用户。
【问题讨论】:
-
$adusernameNewPermission包含什么? -
@Bevan 来自我的 aad 的用户名
-
需要更多信息。
write-host $adusernameNewPermission的输出是什么?价值是如何分配的?通过另一个命令或静态条目?它是作为对象还是字符串?如果通过另一个命令使用 ` |选择 -expandproperty Name` 以确保var是一个字符串。 -
这是我想从中检索对象 ID 的 achahbar@domainStackoverflow.com 用户。通过使用命令 Get-AzureAD 执行此操作
-
您是否启用了“允许脚本访问 Oauth”?
标签: azure powershell azure-active-directory azure-powershell