使用Get-AzRoleAssignment指定SignInName参数时报错的问题咨询
Azure角色分配查询报错:找不到指定主体的解决方法
问题描述
执行不带SignInName参数的查询命令时正常:
Get-AzRoleAssignment -ResourceGroupName $RGName -ResourceName $RN -ResourceType Microsoft.DesktopVirtualization/applicationGroups -RoleDefinitionName "Desktop Virtualization User"
但添加SignInName参数后执行以下命令时,报错 Get-AzRoleAssignment : Cannot find principal using the specified options:
Get-AzRoleAssignment -SignInName $SID -ResourceGroupName $RGName -ResourceName $RN -ResourceType Microsoft.DesktopVirtualization/applicationGroups -RoleDefinitionName "Desktop Virtualization User"
解决步骤
- 验证SignInName准确性:确认变量
$SID存储的用户登录名完全正确,包含完整域名(如user@contoso.com),排查大小写、拼写错误。 - 确认用户存在于Azure AD:运行
Get-AzADUser -UserPrincipalName $SID,若返回空结果,说明该用户不在当前订阅对应的Azure AD租户中,需先添加用户或切换到正确租户。 - 调整参数组合:尝试移除
RoleDefinitionName参数,仅用SignInName和资源相关参数查询,确认是否能返回结果后,再逐步添加筛选条件。 - 改用ObjectId查询:先通过
Get-AzADUser -UserPrincipalName $SID获取用户的ObjectId,再用-ObjectId参数替代-SignInName执行查询:$user = Get-AzADUser -UserPrincipalName $SID Get-AzRoleAssignment -ObjectId $user.Id -ResourceGroupName $RGName -ResourceName $RN -ResourceType Microsoft.DesktopVirtualization/applicationGroups -RoleDefinitionName "Desktop Virtualization User" - 检查账号权限:确保当前登录账号拥有读取Azure AD用户信息和角色分配的权限,至少需要
Reader或Role Based Access Control Administrator权限。
内容的提问来源于stack exchange,提问作者Ritesh
相关产品推荐
相关产品推荐

