Мне нужно запустить 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.
Ожидание завершится по истечении времени ожидания, а Прием задания вернет только «Задание запущено».
Я пытался:
- Я гарантирую, что удаленное взаимодействие в основном потоке работает нормально, и Invoke-Command -AsJob тоже работает.
- Invoke-Command и другие командлеты на основе PSSession работают одинаково - блокируют выполнение задания.
Создать PSSession в главном потоке, а затем передать объект или объект сеанса. Идентифицируется как -InputArguments для задания
Результат: PSSession, созданный в основном потоке, нельзя использовать в дочернем Job, независимо от того, был ли он передан или найден в блоке скриптов задания Get-PSSession
Заранее спасибо!