如何通过Get-AzureAdUser在一次调用中获取用户列表以及经理信息?

时间:2019-04-17 19:27:02

标签: powershell azure-active-directory

我正在尝试从我们的Azure AD租户中提取用户列表。当前,我正在使用Get-AzureAdUser,它几​​乎返回了我需要的所有内容。但是,我还需要了解每个用户的管理员,该管理员不会出现在Get-AzureAdUser的响应中。当前,如果不单独调用另一个cmdlet Get-AzureAdUserManager,就无法找到它。这会大大降低整个过程的速度。显然,我想将此限制为一次通话,并一次性接收所有必要的数据。无论如何有可能吗?

在此先感谢您的帮助!

1 个答案:

答案 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 UsersList 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