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

PowerShell查询AD多OU用户合并导出CSV仅显示单OU数据求助

问题根因
  • 原脚本中你直接把AD用户查询结果通过管道传给了Export-Csv命令,这个命令会把数据直接写入文件,不会返回结果给$users变量,所以两次对$users的赋值操作实际都没有拿到用户数据
  • Export-Csv默认会覆盖目标路径的现有文件,第二次执行导出时直接覆盖了第一次存的OU1数据,最终仅保留第二个OU的内容
  • 额外提示:你当前定义的$OU1和$OU2内容完全一致,实际使用时请替换为真实的两个不同OU路径
可直接运行的修正脚本
# 定义需要查询的OU列表,用数组格式更规范,要加更多OU直接往数组里加就行
$OUList = @(
    "OU=Standard users,OU=US,DC=x1,DC=contoso,DC=com",
    "OU=Standard users,OU=AS,DC=x1,DC=contoso,DC=com"
)
$users = @()

# 遍历所有OU查询用户
foreach ($OU in $OUList) {
    $users += Get-ADUser -Filter * -SearchBase $OU -Properties name, userPrincipalName, accountExpires, distinguishedName, physicalDeliveryOfficeName |
    Select-Object name, userPrincipalName, accountExpires, distinguishedName, physicalDeliveryOfficeName
}

# 全量用户收集完成后统一导出CSV,加编码参数避免中文乱码
$users | Export-Csv -Path "c:\users\$env:USERNAME\desktop\2-OU-List.csv" -NoTypeInformation -Encoding UTF8
补充说明
  • 不要用-Properties *查询所有用户属性,会大幅拖慢查询速度,你需要用到哪些属性就明确指定就行,上面脚本的写法已经做了优化
  • 如果你确实需要边查询边导出,可以在第二次执行Export-Csv时加上-Append参数,就不会覆盖之前的内容,不过更推荐先收集完所有数据再统一导出,方便后续做去重、排序等处理
  • -NoTypeInformation参数可以去掉CSV开头多余的类型标识,导出的文件直接用Excel打开就能正常读取

内容的提问来源于stack exchange,提问作者New Kid on the block

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 03:24:02