如何用PowerShell脚本将AD用户及经理详情导出至单个CSV报告
解决方法
直接将两个对象的属性整合到一个自定义对象中,再导出CSV即可,修正后的代码如下:
# 获取目标用户详情,明确指定所需属性(避免用-properties *提升查询效率) $user = Get-ADUser -Identity "abc" -Properties Name, SamAccountName, empid, Manager # 获取经理详情,同时处理用户无经理的情况 if ($user.Manager) { $manager = Get-ADUser -Identity $user.Manager -Properties Name, empid } else { $manager = [PSCustomObject]@{ Name = $null empid = $null } } # 构建符合需求格式的合并对象 $combinedData = [PSCustomObject]@{ username = $user.Name samaccountname = $user.SamAccountName empid = $user.empid managername = $manager.Name manageremployeeID = $manager.empid } # 导出到CSV文件,-NoTypeInformation避免生成多余类型头,-Encoding UTF8保证兼容性 $combinedData | Export-Csv -Path "C:\Your\Output\Path\user_manager_info.csv" -NoTypeInformation -Encoding UTF8
关键细节说明:
- 放弃
-Properties *,明确指定需要的属性,减少AD查询的数据量,提升运行效率 - 增加了无经理场景的判断,避免因
$user.Manager为空导致的报错 - 自定义对象的字段名完全匹配你需要的CSV格式
- 导出时指定编码为UTF8,避免不同系统打开CSV出现乱码问题
如果需要批量处理多个用户,可将上述逻辑封装到循环中,遍历用户列表逐一处理后合并导出。
内容的提问来源于stack exchange,提问作者Swasthik
相关产品推荐
相关产品推荐

