我很难为Azure订阅中的每个子资源提取PIM分配。
我目前使用的是AzureADPreview模块中的Get-AzureADMSPrivilegedRoleAssignment
,如下所示:
$allRolesSingleSubAssignment = Get-AzureADMSPrivilegedRoleAssignment -ProviderId AzureResources -ResourceId $sub.Id
这是在提供的-ResourceId级别返回所有内容,在我的例子中,这是一个订阅。然而,我也试图返回作为该子资源的所有内容的PIM分配,这正是它允许您在门户中执行的操作,如下面的屏幕截图所示。
而目前我上面分享的命令只提供了第一个选项“仅在此订阅中导出成员”。我有点不知所措,想知道它是否不能通过PowerShell使用?如果可能的话,我更希望能够通过PowerShell拉取这个,但也希望直接从Graph方面得到任何建议。
到目前为止,我还没有能够找到一种方法来拉我在寻找什么,所以任何帮助或提示是非常感谢!
1条答案
按热度按时间vm0i2vca1#
我有办法了。在通过浏览器Developer Tools调查了Portal正在进行的调用之后,我看到了以下内容:
来自门户的该调用返回一个包含所请求数据的CSV。然而,我构建了以下函数,给予您选择输出到CSV或只是利用脚本中的数据:
上面用于“Query-PIMOObjectWithChildren”函数/ API调用的
-resourceIdentitfier
开关是资源的PIM特定ID。为了澄清,这是不是你习惯使用的ID。IE,如果你试图拉订阅的数据,它不是订阅ID.您可以通过以下两种方式之一来查找正确的ID:
1.使用Get-AzureADMSourceResource命令查找ID。示例如下:
$subPIMId = (Get-AzureADMSPriviliegedResource -ProviderId 'AzureResources' -Filter "ExternalId eq //subscriptions/$subscriptionId/'").Id
-resourceIdentifier
交换机,以生成PIM数据及其下的所有子节点。最后一点注意,同样的事情也可以用于获取所有AAD角色分配。虽然它只是在租户级别,所以它不像Azure RBAC端对我那么有帮助,因为AAD角色的数据可以通过其他方式生成。
希望你说得通。任何人看到这个,让我知道如果你有任何问题,很乐意帮助。