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

如何用PowerShell生成含指定字段的全Azure AD用户及管理者报告?

获取Azure AD用户及其管理者完整列表(含无管理者用户)

没问题!针对你的需求,我整理了一份适合新手的PowerShell脚本,能帮你一次性导出包含指定字段的用户及其管理者列表,包括那些没有管理者的用户。

首先,先确保你已经安装并连接了AzureAD模块(如果还没做的话):

# 安装AzureAD模块(首次运行需要)
Install-Module AzureAD -Force -AllowClobber
# 连接到你的Azure AD租户
Connect-AzureAD

接下来,运行这段脚本就能得到你需要的所有信息:

# 拉取所有Azure AD用户(-All $true确保拿到全部用户,不是默认的前100条)
$allUsers = Get-AzureADUser -All $true

# 创建一个空数组用来存最终结果
$userManagerData = @()

# 逐个处理每个用户
foreach ($user in $allUsers) {
    # 查询当前用户的管理者,加-ErrorAction避免无管理者时抛出错误
    $manager = Get-AzureADUserManager -ObjectId $user.ObjectId -ErrorAction SilentlyContinue

    # 组装需要的字段,无管理者时对应字段设为$null(你也可以改成"无管理者"这类文本)
    $userRecord = [PSCustomObject]@{
        UsersObjectId    = $user.ObjectId
        UserUPN          = $user.UserPrincipalName
        UserType         = $user.UserType
        ManagersObjectId = if ($manager) { $manager.ObjectId } else { $null }
        ManagerUPN       = if ($manager) { $manager.UserPrincipalName } else { $null }
        ManagerUserType  = if ($manager) { $manager.UserType } else { $null }
    }

    # 把这条记录加入结果数组
    $userManagerData += $userRecord
}

# 在控制台查看结果
$userManagerData

# 如果要导出成CSV文件方便后续处理,取消下面这行注释并修改路径
# $userManagerData | Export-Csv -Path "C:\Your\Save\Path\User_Manager_List.csv" -NoTypeInformation

关键细节说明:

  • -All $true:必须加上这个参数,不然默认只会返回前100个用户,漏掉大量数据
  • -ErrorAction SilentlyContinue:当用户没有管理者时,这个参数会让命令静默跳过错误,不会打断脚本执行,同时$manager会变成null
  • 空值处理:用if ($manager)判断是否存在管理者,不存在就给对应字段赋值$null,你可以根据需要改成更友好的文本,比如把$null换成"无管理者"
  • 权限要求:确保你的账号有读取Azure AD用户和管理者信息的权限,不然会报错

如果运行过程中遇到问题,比如权限不足或者模块安装失败,可以告诉我具体的错误信息,我再帮你排查~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:11:35