You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Get-MgUser获取用户的管理者UPN?

解决Graph PowerShell脚本获取用户管理者UPN无结果的问题

你的脚本存在几个关键问题导致无返回结果:

  • 变量拼写错误:定义的是$mgrUPN,但赋值给NoteProperty时写成了$managerUPN,变量名不匹配导致值为空
  • 判断条件错误:if ($user.Manager)中的$user是初始获取的用户对象,未包含Manager属性,应该检查$mgr.Manager是否存在
  • 循环内重复调用API效率低下,可通过一次请求获取所有用户的Manager属性优化

修正后的基础脚本

$allUsers = Get-MgUser -All -Filter "UserType eq 'Member'"

foreach ($user in $allUsers) {
    $mgr = Get-MgUser -UserId $user.Id -ExpandProperty Manager
    
    if ($mgr.Manager) {
        $mgrUPN = $mgr.Manager.AdditionalProperties.userPrincipalName
        $user | Add-Member -MemberType NoteProperty -Name Manager -Value $mgrUPN -Force
    }
    else {
        $user | Add-Member -MemberType NoteProperty -Name Manager -Value "NULL" -Force
    }
}

# 输出包含管理者UPN的用户列表
$allUsers | Select-Object Id, UserPrincipalName, Manager

更高效的优化版本(减少API调用次数)

直接在初始获取用户时展开Manager属性,避免循环内重复请求:

$allUsers = Get-MgUser -All -Filter "UserType eq 'Member'" -ExpandProperty Manager

foreach ($user in $allUsers) {
    $managerUPN = $user.Manager ? $user.Manager.AdditionalProperties.userPrincipalName : "NULL"
    $user | Add-Member -MemberType NoteProperty -Name Manager -Value $managerUPN -Force
}

# 输出结果
$allUsers | Select-Object Id, UserPrincipalName, Manager

内容的提问来源于stack exchange,提问作者LaserWhale

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 02:40:06