我正在尝试从我们的Azure AD租户中提取用户列表。当前,我正在使用Get-AzureAdUser
,它几乎返回了我需要的所有内容。但是,我还需要了解每个用户的管理员,该管理员不会出现在Get-AzureAdUser
的响应中。当前,如果不单独调用另一个cmdlet Get-AzureAdUserManager
,就无法找到它。这会大大降低整个过程的速度。显然,我想将此限制为一次通话,并一次性接收所有必要的数据。无论如何有可能吗?
在此先感谢您的帮助!
答案 0 :(得分:1)
AFAIK,您将无法使用 Get-AzureADUser
替代
Azure AD Graph API
这是PowerShell也在幕后使用的API。在这里,您可以在一次调用中利用$expand
operator获取资源及其某些导航属性。
https://graph.windows.net/myorganization/users?$expand=manager&api-version=1.6
or
https://graph.windows.net/{tenant-id}/users?$expand=manager&api-version=1.6
您可以在Azure AD Graph Explorer中快速尝试该查询。
请注意,返回大量数据可能会很麻烦,尤其是因为我没有看到$ expand和$ select一起工作,以便仅返回您感兴趣的那些字段。您的案例的设计考虑因素。
注意:在大多数情况下,建议在Azure AD Graph API上使用较新的Microsoft Graph API,请在此处Microsoft Graph or Azure AD Graph了解更多信息。您的特殊情况是Microsoft Graph API的v1.0终结点不支持所需查询,因此我提到了Azure AD Graph API。在下一节中看到。
Microsoft Graph API
Microsoft Graph API可以帮助您查询用户信息。用于查询用户和管理员的单个API是List Users和List Manager
更有趣的是,通过Microsoft Graph API,您可以使用$expand
operator来尝试在一次调用中获取资源及其某些导航属性。
https://graph.microsoft.com/beta/users?$expand=manager
您可以在Microsoft Graph Explorer中快速尝试一下。
注意:请注意,我在这里使用beta端点。不建议将Beta端点API与生产代码一起使用。
稳定的v1.0终结点不支持相同的查询,因此我建议上面使用Azure AD Graph API。
/* Does NOT work */
https://graph.microsoft.com/v1.0/users?$expand=manager