2015-11-04 2 views
1

Может кто-нибудь объяснить, почему эта работа ничего не возвращает? Объект создается и возвращается, когда он не запускается в задании. Я не уверен, что может произойти неправильно.Работа не возвращается PSObject

$verifyJob = { 

$prm = @{'ComputerName' = $args[0];'Credential' = $args[1]} 
$esc = @{'ErrorAction' = 'SilentlyContinue'} 

# IP Address 
$IPAddress = [System.Net.Dns]::GetHostAddresses($args[0]).IPAddressToString 

# WMI queries 
$os = gwmi Win32_OperatingSystem @prm @esc 
$cs = gwmi Win32_ComputerSystem @prm @esc 

[pscustomobject]@{ 
    ComputerName = $args[0] 
    OSVersion = $os.Version.SubString(0,3) 
    Domain = $cs.Domain.Split(".")[0] 
    IP = $IPAddress 
    } 
} 

Start-Job -ScriptBlock $verifyJob -ArgumentList [server],[cred] 
Get-Job |Wait-Job | Receive-Job 

Когда я получаю работу, там ничего нет. Я попытался присвоить объект переменной и вернуть ее в конце задания, но не повезло.

* отредактированы для ясности Wait-Job

+1

Вы пытались использовать 'Wait-Job'? – PetSerAl

+0

Я этого не делал, но я запускал все вручную. Я подождал, чтобы получить задание, пока оно не покажется полным. – Acerbity

ответ

2

Вы должны ждать, чтобы завершить работу, чтобы получить результаты.

От Receive-Job:

Командлета Receive-Job получает результаты, которые были созданы к тому времени, команда Receive-Job представлена. Если результаты еще не завершены, вы можете запустить дополнительные команды получения-задания, чтобы получить оставшиеся результаты.

Данные WMI могут занять некоторое время для запуска. Я подозреваю, что вам необходимо выполнить команду Wait-Job, чтобы она могла быть завершена.

Обратите внимание, что результаты Get-Job расскажут вам статус работы и будут ли данные ожидающими получения.

+0

Я сделал это выше. Я запускал это вручную. Работа была завершена, когда я получил ее. – Acerbity

+0

@Acerbity Хорошо, я просто пропустил этот комментарий. Я также отмечаю, что вы считаете, что это не проблема, но, как общий первоначальный ответ на этот вопрос, я оставлю это место другим. – Richard

-1

Получается, что код, который я опубликовал, работает правильно. Мой фактический сценарий очень длинный, и, вероятно, есть отдельная ошибка, вызывающая мои проблемы.

Смежные вопросы