如果需要使用PowerShell在多台机器上执行同样的脚本,可以在Invoke-Comamnd命令中指定服务器列表,并行批量处理以节省时间,但是可能因为客户端连接每台机器的时间和返回结果的时间不一致,导致最终得结果交叉输出。
如何要根据机器名汇总结果,可以使用Group-Object命令
$pc1 = $env:computername $pc2 = '192.168.2.112' $code = { Get-Service | Where-Object Status -eq Running } # 获取所有结果 $result = Invoke-Command -ScriptBlock $code -ComputerName $pc1, $pc2 # 根据机器名汇总 $groups = $result | Group-Object -Property PSComputerName -AsHashTable $groups # 单独访问每个机器的结果 $groups.$pc1 $groups.$pc2
当指定了-AsHashTable参数后,Group-Object会创建一个键为机器名的哈希表,接下来还可以继续并行处理每个机器上的结果。
原文连接:Separating Results by Property Value
本文链接: https://www.pstips.net/separating-results-by-property-value.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!