这是我正在尝试运行的脚本,其中 $servers = @("computer1","computer2")
$servers | % {
Start-Job -ScriptBlock {param($c) Get-EventLog -LogName "Application" -Newest 10 -ComputerName $c} -ArgumentList $_
}
我遇到的问题是这些工作将保持“运行”。我想这可能是传递参数的问题,所以我删除了脚本的那部分,就像这样-
$servers | % {
Start-Job -ScriptBlock {param($c) Get-EventLog -LogName "Application" -Newest 10} -ArgumentList $_
}
......它奏效了。然后我尝试指定计算机名(以验证它是一个参数传递问题),就像这样 -
$servers | % {
Start-Job -ScriptBlock {param($c) Get-EventLog -LogName "Application" -Newest 10 -ComputerName "computer1"} -ArgumentList $_
}
预期的效果是它可以在同一台服务器上获得两次远程事件。相反,我遇到了与以前相同的问题:脚本启动了 2 个作业,它们都永远处于运行状态。
任何想法或指示?
快速编辑:
我也尝试在远程机器上使用 Get-EventLog 而不尝试在作业中运行它。这很好用。
最终编辑:
从基思的回应看来,问题出在我的环境中。我将自行进一步排除故障并接受基思的回答,因为它指出了我的结论。