无Get-AzADUser模块时如何在Azure中查找用户ObjectId
查找用户ObjectId的替代方法
由于无法使用Get-AzADUser模块,你可以借助已有的Get-AzRoleAssignment命令间接获取用户的ObjectId,具体方案如下:
方法1:通过用户标识信息过滤查询
Get-AzRoleAssignment返回的结果包含用户的DisplayName(显示名称)、SignInName(登录邮箱)和ObjectId字段,可通过这些信息筛选目标用户:
- 通过显示名称精准匹配:
Get-AzRoleAssignment | Where-Object {$_.DisplayName -eq "目标用户名"} | Select-Object DisplayName, SignInName, ObjectId
- 通过登录邮箱精准匹配:
Get-AzRoleAssignment | Where-Object {$_.SignInName -eq "目标用户邮箱@xxx.com"} | Select-Object DisplayName, SignInName, ObjectId
如果结果过多,可缩小查询范围(比如指定资源组或订阅):
Get-AzRoleAssignment -ResourceGroupName "你的资源组名称" | Where-Object {$_.DisplayName -like "*部分用户名*"} | Select-Object DisplayName, SignInName, ObjectId
方法2:获取当前登录用户的ObjectId
若要查询当前会话登录用户的ObjectId,可结合Get-AzContext和Get-AzRoleAssignment:
$currentUser = (Get-AzContext).Account.Id Get-AzRoleAssignment | Where-Object {$_.SignInName -eq $currentUser} | Select-Object ObjectId
注意:以上方法仅适用于已被分配Azure角色的用户,若用户未拥有任何角色权限,
Get-AzRoleAssignment无法返回该用户的相关信息。
内容的提问来源于stack exchange,提问作者Ritesh
相关产品推荐
相关产品推荐

