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

PowerShell调用Get-ADComputer时超长计算机名意外拆分问题求助

解决长计算机名导出CSV时被拆分的问题

问题根源

你的计算机名包含冒号(:)这类特殊字符,直接处理导出时没对字段做正确的引号包裹,导致Excel打开CSV时错误地把冒号附近内容拆成多列。另外用+=拼接数组不仅效率低,还可能引发对象属性异常。

修正后的脚本

$csvPath = "C:\Users\Default\Desktop\test.csv"
$subdomains = "test","test2","test3","test4"

# 直接通过循环收集所有子域计算机对象,避免数组拼接的性能和格式问题
$allComputers = foreach ($subdomain in $subdomains) {
    Get-ADComputer -Filter * -Properties Name, OperatingSystem, OperatingSystemVersion, LastLogonDate, DNSHostName, Enabled `
        -SearchBase "DC=$subdomain,DC=test,DC=lan" -Server "$subdomain.test.lan"
}

# 选择需要的属性并导出为CSV,Export-Csv会自动用双引号包裹含特殊字符的字段
$allComputers | Select-Object Name, OperatingSystem, OperatingSystemVersion, LastLogonDate, DNSHostName, Enabled |
    Export-Csv -Path $csvPath -NoTypeInformation -Encoding UTF8

关键修改说明

  • 替换数组拼接方式:用foreach直接输出对象并收集,彻底告别+=带来的性能损耗和潜在格式问题。
  • 用Export-Csv规范导出:这个命令会自动识别带特殊字符的字段,用双引号包裹,确保Excel打开时不会拆分列。
  • 修正LDAP路径格式:原脚本里DC=$subdomain , DC=test , DC=lan的空格会导致查询失败,去掉逗号前后的空格才能正常访问AD。
  • 指定UTF8编码:避免导出后中文或特殊字符乱码,Excel也能正确识别内容。

额外提示

如果之前是手动拼接CSV内容(比如用Out-File写),必须换成Export-Csv才能处理特殊字符。打开CSV时,建议用Excel的「数据」→「自文本/CSV」导入,手动指定分隔符为逗号,避免自动识别出错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 05:43:30