混合模式下Azure AD非本地账户manager/companyName属性查询异常求助
混合AD环境下Azure AD用户属性查询问题解决
问题根源
不是因为属性必须从本地AD同步,核心原因是默认查询不会返回manager和companyName这两个属性。这俩属性属于需要显式指定的字段,不管是AZ模块的PowerShell命令还是Graph API,默认请求都不会自动包含它们,所以才会返回空值。
具体解决办法
用PowerShell的Get-AzADUser查询
必须加-Select参数指定要获取的属性,示例:
# 单用户查询 Get-AzADUser -UserPrincipalName "user@yourdomain.com" -Select "Manager", "CompanyName" # 所有用户批量查询 Get-AzADUser -All $true -Select "Id", "UserPrincipalName", "Manager", "CompanyName"
用Microsoft Graph API查询
调用API时要加$select参数指定属性,示例:
单用户查询
GET https://graph.microsoft.com/v1.0/users/{用户ID或UPN}?$select=id,userPrincipalName,manager,companyName
批量用户查询
GET https://graph.microsoft.com/v1.0/users?$select=id,userPrincipalName,manager,companyName
如果需要获取经理的详细信息(不止ID和UPN),要加$expand参数展开manager:
GET https://graph.microsoft.com/v1.0/users/{用户ID或UPN}?$select=id,userPrincipalName,companyName&$expand=manager($select=id,userPrincipalName,displayName)
额外检查项
要是按上面的方法还是返回空,得确认两点:
- 去Entra ID界面重新核实,该用户的
manager和companyName确实已经填写(排除界面缓存的情况) - 检查当前使用的权限:不管是PowerShell还是Graph API,都需要
User.Read.All或Directory.Read.All权限才能读取其他用户的这些属性
内容的提问来源于stack exchange,提问作者ragingdev
相关产品推荐
相关产品推荐

