如何在Invoke-Command结果中关联PSComputername与输出字符串?
解决Invoke-Command输出内容与PSComputername关联显示的问题
问题核心是exe返回的纯字符串对象虽携带PSComputername属性,但默认不会和字符串内容一同展示,需手动封装为自定义对象来关联两者。
解决步骤
- 调整Invoke-Command的脚本块,将exe输出与服务器名封装成自定义对象:
$result = Invoke-Command $servers { # 执行exe并捕获输出 $exeOutput = & "\path\to\exe" arg1 # 封装为包含指定属性的自定义对象 [PSCustomObject]@{ PSCOMPUTERNAME = $env:COMPUTERNAME OutputContent = $exeOutput } }
- 查看关联结果:直接运行
$result即可看到带服务器名和对应输出的表格,格式如下:
PSCOMPUTERNAME OutputContent
Server3 str3
Server2 str2的内容
- 导出为CSV:
$result | Export-Csv -Path ".\server_output.csv" -NoTypeInformation -Encoding UTF8
内容的提问来源于stack exchange,提问作者CoLatrL Damg3
相关产品推荐
相关产品推荐

