首页 > 解决方案 > 如何通过 Get-AzureAdUser 在一次调用中获取用户列表以及经理信息?

问题描述

我正在尝试从我们的 Azure AD 租户中提取用户列表。目前,我正在使用Get-AzureAdUser它返回几乎所有我需要的东西。但是,我还需要知道每个用户的经理,这不会出现在来自Get-AzureAdUser. 目前,如果不单独调用另一个 cmdlet,我无法找到它Get-AzureAdUserManager这大大减慢了整个过程。显然,我想将其限制为一次通话并一次性接收所有必要的数据。这有可能吗?

在此先感谢您的帮助!

标签: powershellazure-active-directory

解决方案


AFAIK,您将无法在一次通话中使用Get-AzureADUser

备择方案

Azure AD 图形 API

这是 PowerShell 也在幕后使用的 API。在这里,您可以在一次调用中使用$expand操作员获取资源及其一些导航属性。

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 或 Azure AD Graph。您的特殊情况是 Microsoft Graph API 的 v1.0 端点不支持所需的查询,因此我提到了 Azure AD Graph API。请参阅下一节。

微软图形 API

Microsoft Graph API 可以帮助您查询用户信息。查询用户和管理员的单个 API 是List UsersList Manager

更有趣的是,使用 Microsoft Graph API,您可以使用$expand运算符尝试在一次调用中获取资源及其一些导航属性。

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   

推荐阅读