如何让Get-NetIPAddress对服务器数组的查询结果输出为单张统一表格
问题根因
- 循环内部每次调用
Format-Table会触发PowerShell单独渲染单台服务器的结果表格,自然会输出多张表 - 未将所有服务器的查询结果存入同一个集合,无法合并输出统一总表
- 原有代码中服务器数组的字符串值未加引号,会被PowerShell识别为变量导致报错
解决方案
方案1:修改原有循环逻辑
先收集所有服务器的查询结果到统一数组,全部查询完成后再统一格式化输出:
$Servers = @('Test1','Test2') $allIPResults = @() foreach($Server in $Servers){ $GetIP = Get-NetIPAddress -CimSession $Server -AddressFamily IPv4 -PrefixOrigin Manual | Select PSComputerName,IPAddress $allIPResults += $GetIP } $allIPResults | Format-Table
方案2:更简洁的原生参数实现
Get-NetIPAddress的-CimSession参数本身支持传入多台服务器名数组,无需手动写循环,结果会自动合并:
$Servers = @('Test1','Test2') Get-NetIPAddress -CimSession $Servers -AddressFamily IPv4 -PrefixOrigin Manual | Select PSComputerName,IPAddress | Format-Table
内容的提问来源于stack exchange,提问作者Fitzgery
相关产品推荐
相关产品推荐

