azure 如何使用MS Graph Powershell从自定义AD角色获取成员

mfuanj7w  于 2023-03-03  发布在  Shell
关注(0)|答案(1)|浏览(111)

我正在尝试从使用MS Powershell Graph在门户中创建的自定义角色获取成员。此自定义角色处于活动状态,并且已分配成员。
我无法从自定义角色获取DirectoryRoleId(如果存在)以运行Get-MgDirectoryRoleMember。
我想出了以下几点:

  • Get-MgDirectoryRole检索到所有活动角色,但没有自定义角色。
  • Get-MgDirectoryRoleTemplate已检索所有角色,包括未激活角色,但没有检索自定义角色角色总数98。
  • Get-MgRoleManagementDirectoryRoleDefinition所有角色包括那些未激活的角色,但现在包括我的自定义角色!角色总数99.

遗憾的是,我无法通过这种方式获取DirectoryRoleId,因此无法将其用于Get-MgDirectoryRoleMember -DirectoryRoleId '<id>'。此cmdlet可与默认角色一起正常工作。
我是否缺少另一个用于通过MS Graph PowerShell提取自定义角色成员的cmdlet?

e37o9pze

e37o9pze1#

我尝试在我的环境中重现相同的结果,结果如下:

我创建了一个名为 "Directory Admininistrator"自定义目录角色,其ID和权限如下:

现在,我为这个自定义角色添加了2个活动角色分配(用户),如下所示:

我运行了以下MS Graph Powershell命令,以从自定义目录角色获取DirectoryRoleId

Connect-MgGraph
Get-MgRoleManagementDirectoryRoleDefinition -Filter "(displayName eq 'Directory Admininistrator')"
    • 响应:**

当我尝试使用下面的脚本获取此自定义角色的成员时,出现如下错误:

# Get the role definition for your custom role
$roleDefinition = Get-MgRoleManagementDirectoryRoleDefinition -Filter "(displayName eq 'Directory Admininistrator')"

# Get the members of your custom role
$roleMembers = Get-MgDirectoryRoleMember -DirectoryRoleId $roleDefinition.Id

# Display the results
$roleMembers
    • 答复:**

AFAIK,使用Powershell列出来自自定义Azure AD角色的成员当前处于预览状态,这可能会导致错误。请检查此MS文档。
或者,您可以使用Azure AD Powershell命令列出自定义目录角色的活动角色分配
我运行了以下命令以从自定义目录角色获取DirectoryRoleId

Connect-AzureAD
Get-AzureADMSRoleDefinition -Filter "displayName eq 'Directory Admininistrator'"
    • 答复:**

当我尝试使用以下脚本获取此自定义角色的成员时,我得到的响应是user IDs已成功分配给该角色,如下所示:

# Get the role definition for your custom role
$roleDefinition = Get-AzureADMSRoleDefinition -Filter "displayName eq 'Directory Admininistrator'"

# Get the members of your custom role
$roleMembers = Get-AzureADMSRoleAssignment -Filter "roleDefinitionId eq '$($role.Id)'"

# Display the results
$roleMembers
    • 答复:**

相关问题