PowerShell导出AD用户时proxyaddresses含换行空格,求单行输出方案
解决PowerShell导出AD用户时proxyaddresses字段换行的问题
直接替换原脚本里的fl(Format-List)为手动构造输出的逻辑,就能让proxyaddresses变成单行无换行的格式,无需复杂编码:
修改后的脚本
Get-Content U:\Syn.txt | ForEach-Object { Get-ADUser -server blabla.com -Filter "proxyaddresses -like '*$_*'" -Properties userprincipalname,displayname,enabled,description,proxyaddresses,primarygroup } | ForEach-Object { # 按原格式输出每个字段,将proxyaddresses数组合并为单行 "userprincipalname : $($_.userprincipalname)" "proxyaddresses : $($_.proxyaddresses -join ', ')" "displayname : $($_.displayname)" "enabled : $($_.enabled)" "description : $($_.description)" "PrimaryGroup : $($_.PrimaryGroup)" "" # 每个用户之间添加空行分隔 } | Out-File U:\output.txt
关键说明
- 原脚本用
Format-List会自动对过长的数组(比如proxyaddresses)进行换行拆分,这是它为控制台可读性设计的默认行为 - 用
-join ', '把proxyaddresses的数组元素直接合并成一个逗号分隔的单行字符串,彻底避免换行和多余空格 - 手动构造每行输出,保持和原
fl一致的字段对齐格式,同时保证内容整洁
内容的提问来源于stack exchange,提问作者Ozgur Bulent Koza
相关产品推荐
相关产品推荐

