1

これが私が実行しようとしているスクリプトです。 $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 回取得することです。代わりに、以前と同じ問題が発生しました。スクリプトは2つのジョブを開始し、両方とも実行状態のままです...永遠に。

アイデアや指針はありますか?

クイック編集:

また、ジョブで実行しようとせずに、リモート マシンで Get-EventLog を使用しようとしました。それはうまくいきます。

最終編集:

キースの回答から、問題は私の環境にあるようです。私は自分でさらにトラブルシューティングを行い、キースの答えを受け入れて、その結論を示しました。

4

2 に答える 2

1

これを使うのはどうですか?

$servers = @("computer1","computer2")

$servers | ForEach-Object {$comp = $_
           Start-Job -ScriptBlock {Get-EventLog -LogName "Application" -Newest 10 -ComputerName $input} -InputObject $comp}
于 2012-07-20T09:24:29.270 に答える
1

それだけの価値があるため、PowerShell V2 または V3 のどちらでもこのエラーを再現できません。

8# 'build3','build5' | %{ Start-Job -ScriptBlock {param($c) Get-EventLog -LogName "Application" -Newest 10 -Comput
erName $c} -ArgumentList $_}

Id              Name            State      HasMoreData     Location             Command
--              ----            -----      -----------     --------             -------
5               Job5            Running    True            localhost            param($c)...
7               Job7            Running    True            localhost            param($c)...


9# Get-Job

Id              Name            State      HasMoreData     Location             Command
--              ----            -----      -----------     --------             -------
1               Job1            Failed     False           localhost            param($c)...
3               Job3            Completed  False           localhost            param($c)...
5               Job5            Completed  True            localhost            param($c)...
7               Job7            Completed  True            localhost            param($c)...


10# Receive-Job -id 5

   Index Time          EntryType   Source                 InstanceID Message
   ----- ----          ---------   ------                 ---------- -------
 1397893 Jul 20 15:47  Warning     Group Policy Inte...   2248216579 The description for Event ID '-2046750717' in S...
 1397892 Jul 20 15:47  Warning     Group Policy Regi...   2248216579 The description for Event ID '-2046750717' in S...

構成の問題である可能性があります。サーバーでリモート レジストリ サービスを実行していますか? また、ジョブの実行中でも Receive-Job を実行して、中間出力とエラーを取得できます。おそらく、いくつかのエラー情報が問題の追跡に役立つでしょう。

于 2012-07-20T22:12:58.777 に答える