我正在多个服务器上通过调用命令运行一个 exe,它可以工作。我得到一个字符串数组,其中包含我期望的所有输出。
$result = invoke-command $servers { & "\path\toexe" arg1 }
这给了我正确的结果
str3 字符串4 字符串2
...并且
PSCOMPUTER
的名称也在那里,但我无法将它们一起显示,因此我无法立即将结果与 PSComputername
匹配。
$Result|GM
只向我显示 PScomputername 和 RunspaceID 作为属性。就像 $result
数组没有字符串的标签。
$result | Select *
没有显示字符串
$Result.gettype()
显示是 [object] System.Array
我能做到
$result[0]
会告诉我 str3
$result[0].PSComputername
就会显示Server3
如何将整个数组显示在屏幕上或一起转储到 csv?我想看看
PS 计算机名称 ?? 服务器3 str3 服务器2 str2
您可以使用
Select-Object
创建由附加的 PSComputerName
属性以及包含原始字符串的内在值的新命名属性组成的新对象:
$result |Select-Object PSComputerName,@{Name='Value';Expression={"$_"}}