【发布时间】:2016-05-09 21:07:10
【问题描述】:
我有一个要在 5,000 多个端点上运行的 PowerShell 脚本。该脚本枚举了有关每个主机的大量信息,然后我希望能够将这些信息提取到另一个程序中进行分析。
我遇到的问题是 Invoke-Command 不允许我处理从每台机器接收到的数据。这是一个问题,因为使用 5,000 多个端点时,我在运行 Invoke-Command 的机器上遇到了内存限制。
理想情况下,我希望能够在每次收到来自机器的响应时执行一个脚本块。类似这样的东西,例如:
$ProcessOutput = {
# $_ = Data returned from one machine
$_ | Out-File ($_.PSComputerName)
}
Invoke-Command -FilePath $ScriptPath -ComputerName $Computers -ProcessingScriptBlock $ProcessOutput
这是否已经可能并且我忽略了一些东西?还是将我的计算机列表拆分为多个块并逐个扫描每个块(导致运行时间更长)的最佳解决方案?
【问题讨论】:
标签: powershell powershell-remoting invoke-command