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

PowerShell导入CSV时部分行意外拆分导致AD组查询失败求助

问题根因定位

你遇到的DN异常换行问题核心出在DN列表生成脚本的错误写法,以及读取逻辑没有做异常字符清洗:

  • 你生成DN列表时直接用Out-File -Append拼接字符串,Out-File默认有行宽限制(默认和当前PowerShell窗口宽度一致,通常为80~120字符),长度超过限制的DN会被自动折成两行写入文件,这就是换行符的来源。你手动复制粘贴能正常执行,是因为复制操作会自动忽略文本里的软换行,终端接收粘贴内容时也会自动拼接相邻行,所以不会触发报错。
  • 你写的Get-ADGroup查询语句把-Filter参数和变量$SearchFilter拆成了两行,语法存在隐性错误,也可能导致输出异常。
  • 读取DN时没有做特殊字符清洗,直接把带换行/回车符的内容传入AD查询接口,自然会报错。
修复步骤

1 修正DN列表生成脚本,生成标准CSV

直接用PowerShell自带的Export-Csv生成标准格式CSV,避免手动拼接的格式问题,修正后代码如下:

$SearchScope = "OU=OUName,DC=Domain,DC=Domain,DC=com"
$SearchFilter = {GroupCategory -eq 'Distribution'}
# 修正Filter参数换行问题,一次性查询所有AD组
$Groups = Get-ADGroup -SearchBase $SearchScope -Filter $SearchFilter | Sort-Object Name
# 直接导出标准CSV,将DistinguishedName作为Name列输出
$Groups | Select-Object @{Name='Name';Expression={$_.DistinguishedName}} | Export-Csv -Path C:\Temp\DLName.csv -NoTypeInformation -Encoding UTF8

该脚本生成的CSV不会出现自动换行问题,统一UTF8编码也能避免读取时的编码异常。

2 修正查询统计脚本,增加DN清洗逻辑

哪怕旧CSV存在异常,也可以在读取时主动清理所有不可见换行/回车符,同时优化输出逻辑避免循环Append的性能问题:

$Groups = Import-Csv C:\Temp\DLName.csv -Encoding UTF8
Write-Host "总组数量:$($Groups.Count)"
$results = foreach ($Group in $Groups)
{
    # 清洗DN,移除所有换行、回车符
    $cleanDN = $Group.Name -replace "`r|`n", ""
    $GroupInfo = Get-ADGroupMembersRecursive -Groups $cleanDN
    $MembersCount = ($GroupInfo | Measure-Object).Count
    $FriendlyName = Get-ADGroup -Identity $cleanDN
    # 输出结构化对象方便后续导出
    [PSCustomObject]@{
        组名称 = $FriendlyName.Name
        成员数量 = $MembersCount
    }
    Write-Host "$($FriendlyName.Name) , $MembersCount"
}
# 一次性导出结果,避免循环Append导致的格式异常
$results | Export-Csv -Path C:\Temp\DLMembers.csv -NoTypeInformation -Encoding UTF8
额外排查验证手段

如果还有个别DN报错,可以在循环中增加异常捕获,打印原始DN的字符编码确认是否有其他不可见字符:

  • 执行[System.Text.Encoding]::ASCII.GetBytes($Group.Name)输出原始字符的ASCII码,其中换行符ASCII码为10、回车符为13,可以快速定位隐性特殊字符。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 02:06:02