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

如何用PowerShell移除AD导出字段中的CRLF字符?

解决AD导出CSV中的CRLF字符与编码问题

移除/替换地址字段的CRLF字符

你可以直接在Select-Object的计算属性里处理streetaddress字段,用正则表达式替换掉所有回车换行符。比如把换行换成单个空格(保留地址可读性),或者直接移除:

修改后的完整命令如下:

Get-ADUser -Filter {Enabled -eq $True} -Properties cn, streetaddress, telephoneNumber `
    | Select-Object @{N='AcctName';E='cn'}, 
        @{N='Address';E={$_.streetaddress -replace '[\r\n]+', ' '}}, 
        @{N='Phone';E='telephoneNumber'} `
    | Export-Csv c:\temp\test.csv -NoType
  • [\r\n]+匹配任意连续的回车(CR)或换行(LF)字符
  • 第二个参数' '表示替换为单个空格,若要完全移除换行,改成''即可

处理CSV文件编码问题

PowerShell的Export-Csv默认编码因版本而异:

  • PowerShell 5.1 默认使用ASCII编码,非ASCII字符会丢失或乱码
  • PowerShell 7+ 默认使用UTF-8无BOM编码

SQL Server导入时,推荐根据数据情况指定编码:

  • 如果数据全是英文,用-Encoding ASCII即可
  • 如果包含非英文字符,推荐用-Encoding UTF8(PowerShell 5.1中UTF8带BOM,7+中默认无BOM;若需要带BOM,7+可用-Encoding UTF8BOM)

添加编码参数后的命令示例(以UTF-8为例):

Get-ADUser -Filter {Enabled -eq $True} -Properties cn, streetaddress, telephoneNumber `
    | Select-Object @{N='AcctName';E='cn'}, 
        @{N='Address';E={$_.streetaddress -replace '[\r\n]+', ' '}}, 
        @{N='Phone';E='telephoneNumber'} `
    | Export-Csv c:\temp\test.csv -NoType -Encoding UTF8

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 11:52:07