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

PowerShell脚本运行正常但PSCustomObject输出IP被截断该如何解决?

问题根因

IP截断问题不是PSCustomObject构造逻辑错误,也不是net time返回结果存在异常,是PowerShell默认的表格输出格式会根据控制台宽度自动截断超出长度的属性值,默认对字符串类型的列预留宽度不足时就会出现末尾...的截断表现。

修复方案
  • 方案1:输出时强制指定列宽,通过Format-Table参数调整IP列的显示宽度即可解决截断问题
# 原有逻辑不变,将脚本输出结果存入变量后格式化输出
$computers = Get-Content "C:\Users\Administrator\Desktop\DAVID\TimeSyncFinal\CheckTime\allips.txt"
$results = foreach ($strComputer in $computers) {
    $TextOutput = net time \\$strComputer 
    $ip,$time,$time1 = ($TextOutput -split ' ')[3,6,7]

    [PSCustomObject] @{
        IP = $ip -replace ".*\\" 
        Time = $time+$time1
    }
}
# IPv4地址最长为15位,直接指定IP列宽度为15即可完整展示
$results | Format-Table @{Name='IP';Expression={$_.IP};Width=15},Time -AutoSize
  • 方案2:直接使用IP列表中的原值填充IP字段,更稳妥避免net time输出格式变化导致的拆分错误
$computers = Get-Content "C:\Users\Administrator\Desktop\DAVID\TimeSyncFinal\CheckTime\allips.txt"
$results = foreach ($strComputer in $computers) {
    $TextOutput = net time \\$strComputer 
    $time,$time1 = ($TextOutput -split ' ')[6,7]

    [PSCustomObject] @{
        IP = $strComputer
        Time = $time + $time1
    }
}
$results | Format-Table -AutoSize
  • 方案3:如果需要留存结果,直接导出为CSV文件不会出现截断问题
$results | Export-Csv -Path "C:\时间同步检测结果.csv" -NoTypeInformation -Encoding UTF8
补充说明

你之前尝试使用的-ExpandProperty是Select-Object的专用参数,作用是展开对象的嵌套属性,不适用于解决本场景的控制台显示截断问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 06:54:01