Это одна строка (из-за точек с запятой), которая будет отображать обратный отсчет, делая паузу, похожую (но не совпадающую) с командой timeout cmd

исал небольшую функцию powershell, которая выполняет Get-EventLog для удаленных серверов. На некоторых серверах это просто зависает и никогда не прерывается. Могу ли я приостановить вызов функции powershell? Я вижу, как это сделать противдругой процесс, но я хочу сделать это для функции Power Shell.

Спасибо

#######################
function Get-Alert4
{
    param($computer)
    $ret = Get-EventLog application -after (get-date).addHours(-2) -computer $computer | select-string -inputobject{$_.message} -pattern "Some Error String" | select-object List
    return $ret   
} #

Ответы на вопрос(2)

араметра. Если вы хотите передать в задание более одного аргумента, вы должны передать их в виде массива:

  $job = Start-Job { param($c, $t) Get-EventLog Application -CN $c -After $t | 
                     Select-String "Some err string" -inputobject{$_.message} |
                     Select-Object List } -ArgumentList @($computer, $time)
Решение Вопроса

function Get-Alert4($computer, $timeout = 30)
{
  $time = (Get-Date).AddHours(-2)
  $job = Start-Job { param($c) Get-EventLog Application -CN $c -After $time | 
                     Select-String "Some err string" -inputobject{$_.message} |
                     Select-Object List } -ArgumentList $computer

  Wait-Job $job -Timeout $timeout
  Stop-Job $job 
  Receive-Job $job
  Remove-Job $job
}
 Chad11 янв. 2011 г., 17:54
Спасибо за помощь; очень ценится
 x0n10 янв. 2011 г., 23:06
ааа, молчи! Тем не менее, ты получил свое одобрение от меня;)
 Keith Hill14 янв. 2011 г., 17:58
Попробуйте обновленный код. Вы можете передать параметры в блок скриптов Start-Job, используяArgumentList параметр.
 Keith Hill10 янв. 2011 г., 22:49
Шише, придирчив, придирчив. Я полагаю, вы хотите, чтобы работа по удалению там тоже хорошо вычищалась. :-)
 x0n10 янв. 2011 г., 22:20
Нужен ли ему Stop-Job после Wait-Job? Если время ожидания истекло, задание продолжает выполняться ...

Ваш ответ на вопрос