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

如何用PowerShell批量读取用户列表并导出AD组归属信息?

PowerShell批量查询AD用户组归属实现方案

当然可以实现批量查询,下面是具体的操作步骤和脚本:

一、先修正用户列表生成命令(可选但推荐)

你之前生成userlist.txt的命令会导出带表头的内容,后续读取时容易出错,建议改用以下命令生成纯用户名列表:

Get-ADUser -Filter * -Properties Name | Select-Object -ExpandProperty Name | Out-File -FilePath .\userlist.txt -Encoding utf8
  • Select-Object -ExpandProperty Name:直接提取用户名文本,避免表头干扰
  • -Encoding utf8:防止中文用户名出现乱码

二、批量查询脚本

创建以下PowerShell脚本,执行后会自动读取用户列表、查询组归属并保存结果:

# 读取用户列表,过滤空白行
$userList = Get-Content -Path .\userlist.txt | Where-Object { $_ -match '\S' }

# 初始化结果存储容器
$outputResults = @()

foreach ($userName in $userList) {
    # 查询AD用户对象及所属组属性
    $adUser = Get-ADUser -Filter { Name -eq $userName } -Properties MemberOf
    
    if ($adUser) {
        # 将组的DN转换为可读的组名
        $groupNames = $adUser.MemberOf | Get-ADGroup | Select-Object -ExpandProperty Name
        # 构造结构化结果
        $resultItem = [PSCustomObject]@{
            用户名 = $userName
            所属AD组 = $groupNames -join ';'  # 多个组用分号分隔
        }
    } else {
        # 处理未找到的用户
        $resultItem = [PSCustomObject]@{
            用户名 = $userName
            所属AD组 = "未在Active Directory中找到该用户"
        }
    }
    
    $outputResults += $resultItem
}

# 导出结果为CSV文件(推荐,方便Excel打开编辑)
$outputResults | Export-Csv -Path .\AD用户组归属查询结果.csv -Encoding utf8 -NoTypeInformation

# 若需要文本格式,可替换为以下命令
# $outputResults | Format-Table -AutoSize | Out-File -Path .\AD用户组归属查询结果.txt -Encoding utf8

三、注意事项

  • 确保运行脚本的机器已安装Active Directory模块(域控制器默认自带,普通机器需安装RSAT工具)
  • 执行脚本的账号需要具备Active Directory的查询权限
  • 如果用户名包含特殊字符,脚本中的Filter写法已做适配,无需额外调整

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 01:36:59