New-PSSession в Job блоков Job - PullRequest
       16

New-PSSession в Job блоков Job

0 голосов
/ 26 января 2012

Мне нужно запустить PSSession в работе. Но я не могу использовать Invoke-Command -AsJob из-за архитектуры продукта.

Я пробовал что-то вроде:

$block {
    "Job started"

    $session = New-PSSession -computername "host-name"
    "Session started"
}
$job = Start-Job -ScriptBlock $block 
Wait-Job -Job $job -Timeout 10 | Out-Null
Receive-Job -Job $job

(у меня в системе нет PS, я задаю этот вопрос, чтобы я мог ошибиться в синтаксисе, пропустите его, пожалуйста)

Но вместо создания удаленного сеанса задание навсегда блокировалось в строке New-PSSession. Ожидание завершится по истечении времени ожидания, а Прием задания вернет только «Задание запущено».

Я пытался:

  1. Я гарантирую, что удаленное взаимодействие в основном потоке работает нормально, и Invoke-Command -AsJob тоже работает.
  2. Invoke-Command и другие командлеты на основе PSSession работают одинаково - блокируют выполнение задания.
  3. Создать PSSession в главном потоке, а затем передать объект или объект сеанса. Идентифицируется как -InputArguments для задания

    Результат: PSSession, созданный в основном потоке, нельзя использовать в дочернем Job, независимо от того, был ли он передан или найден в блоке скриптов задания Get-PSSession

Заранее спасибо!

...