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

PowerShell脚本无法获取M365组全部用户的问题求助

问题分析
  • 分页限制:Get-AzureADGroupMember 默认仅返回100条结果,你的组有105位用户,因此只获取到第一页数据。
  • 空值异常未处理:若某用户未设置经理,Get-AzureADUserManager 会返回$null,直接调用$manager.DisplayName会触发报错,导致脚本提前终止。
  • 数组拼接性能问题:用$output += $data的方式拼接数组,数据量较大时会拖慢执行效率,甚至引发意外中断。
修正后的脚本
# 绕过分页限制,获取组内所有成员
$users = Get-AzureADGroupMember -ObjectId 563cf69d-cae5-4630-9705-9345a2ce1259 -All $true

# 用管道收集结果,避免数组拼接的性能损耗
$output = foreach ($user in $users) {
    # 处理经理为空的情况,防止报错
    $manager = Get-AzureADUserManager -ObjectId $user.ObjectId -ErrorAction SilentlyContinue
    $managerName = $manager ? $manager.DisplayName : "无经理"

    # 直接输出自定义对象,自动被管道收集
    [PSCustomObject]@{
        Name           = $user.DisplayName
        JobTitle       = $user.JobTitle
        Manager        = $managerName
        Department     = $user.Department
        Mail           = $user.Mail
        Mobile         = $user.Mobile
        Number         = $user.TelephoneNumber
    }
}

$output | Format-Table
$output | Export-Csv -Path 'C:\Users\EverettScott\OneDrive - ClimeCo\Desktop\GroupOrgInfo.csv' -NoTypeInformation
额外优化建议
  • 添加错误捕获:若脚本仍存在中断风险,可在循环内加入try/catch块,记录异常用户信息,避免整体终止:
$output = foreach ($user in $users) {
    try {
        $manager = Get-AzureADUserManager -ObjectId $user.ObjectId -ErrorAction Stop
        $managerName = $manager.DisplayName
    } catch {
        Write-Warning "获取用户 $($user.DisplayName) 的经理信息失败:$_"
        $managerName = "获取失败"
    }

    [PSCustomObject]@{
        Name           = $user.DisplayName
        JobTitle       = $user.JobTitle
        Manager        = $managerName
        Department     = $user.Department
        Mail           = $user.Mail
        Mobile         = $user.Mobile
        Number         = $user.TelephoneNumber
    }
}
  • 过滤组内嵌套组:如果目标组包含其他组,可过滤仅保留用户对象:
$users = Get-AzureADGroupMember -ObjectId 563cf69d-cae5-4630-9705-9345a2ce1259 -All $true | Where-Object {$_.ObjectType -eq "User"}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 16:24:54