使用PowerShell从AD获取sAMAccount并完善CSV导出功能
修正后的PowerShell代码实现
# 读取原CSV文件并逐行处理用户数据 Import-Csv "filepath.csv" | ForEach-Object { $originalName = $_.name # 尝试在AD中查找用户,静默忽略查找失败的错误 $adUser = Get-ADUser -Filter "name -like '$originalName'" -Properties userPrincipalName -ErrorAction SilentlyContinue # 根据查找结果构造输出对象 if ($adUser) { [PSCustomObject]@{ name = $originalName SamAccountName = $adUser.SamAccountName userPrincipalName = $adUser.userPrincipalName } } else { [PSCustomObject]@{ name = $originalName SamAccountName = 'Not found' userPrincipalName = 'Not found' } } } | Export-Csv -Path "output_filepath.csv" -NoTypeInformation -Encoding UTF8
关键改动说明
- 保留原
name列:通过变量保存原始用户名,最终在输出对象中固定保留该字段 - 处理未找到的用户:用
-ErrorAction SilentlyContinue抑制查找失败的报错,通过判断查询结果是否存在,对未匹配用户填充指定内容 - 导出优化:使用
-NoTypeInformation移除CSV头部的冗余类型信息,指定新输出路径避免覆盖原文件,-Encoding UTF8保证文件编码兼容性
内容的提问来源于stack exchange,提问作者QMo
相关产品推荐
相关产品推荐

