【发布时间】:2019-12-03 08:39:05
【问题描述】:
下面是前面的代码,它与 AzureRm 一起工作
$registry = Get-AzureRmContainerRegistry -ResourceGroupName $resourceGroupName -Name $acrName
# Get the existing service principal; need its 'ObjectId' value
# when assigning the role to the principal in a subsequent command.
$sp = Get-AzureRmADServicePrincipal -ServicePrincipalName $appId
$role = New-AzureRmRoleAssignment -ObjectId $sp.Id -RoleDefinitionName $role -Scope $registry.Id
现在使用最新的 Azure 模块 Az 无法正常工作。
$registry = Get-AzContainerRegistry -ResourceGroupName "somenamee" -Name "acrcontainername"
$sp = Get-AzADServicePrincipal -ServicePrincipalName "............."
$role = New-AzRoleAssignment -ObjectId $sp.Id -RoleDefinitionName 'acrpull' -Scope $registry.Id
错误:
New-AzRoleAssignment : Cannot validate argument on parameter 'ObjectId'. The argument is null or empty. Provide an
argument that is not null or empty, and then try the command again.
At line:1 char:40
+ $role = New-AzRoleAssignment -ObjectId $sp.Id -RoleDefinitionName $ro ...
+ ~~~~~~
+ CategoryInfo : InvalidData: (:) [New-AzRoleAssignment], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.Azure.Commands.Resources.NewAzureRoleAssignmentCommand
【问题讨论】:
-
当我尝试下面的代码时,“$sp = Get-AzADServicePrincipal -ApplicationId 9719c54e-15ca-4911-a6fb-......”我得到以下错误 PS C: \windows\system32> $sp = Get-AzADServicePrincipal -ApplicationId 9719c54e-15ca-4911-a6fb-a23653284ed1 Get-AzADServicePrincipal :权限不足,无法完成操作。在 line:1 char:7 + $sp = Get-AzADServicePrincipal -ApplicationId 9719c54e-15ca-4911-a6fb ... + ~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [Get -AzADServicePrincipal],异常+FullyQual
-
我有服务主体“acr............”那个 appid 和密钥,现在想将 azure 容器注册表的“AcrImageSigner”角色分配给这个服务主体“ acr...........”我该怎么做。
-
您是否在同一个服务主体上使用
AzureRm和Az命令? -
AzureRm 我使用了用户名和密码,对于 Az,我使用的是服务主体
-
如何使用应用名称将角色分配给容器注册表。我可以在 Azure 门户中执行此操作。但我需要 Powershell 的帮助才能做到这一点
标签: azure azure-active-directory azure-container-registry