Как предотвратить блокировку Windows Powershell при запуске команды на нем? Я знаю, что в Linux вы можете добавить & в конце команды, чтобы вы могли продолжать использовать терминал, не закрывая этот процесс. Есть ли что-то похожее для Windows Powershell?
2 ответа
В качестве альтернативы Jobs вы можете использовать Runspaces: они обеспечивают большую производительность и меньше накладных расходов для запуска команд в фоновом режиме.
Реализации:
Как предотвратить блокировку Windows Powershell при запуске команды?
Используйте командлет Start-Job
для запуска заданий в фоновом режиме.
Это эквивалент PowerShell при использовании &
в конце команды в Unix/Linux.
PowerShell Фоновые задания
Самый простой способ создать фоновое задание PowerShell - использовать командлет
Start-Job
. Вы можете указать блок скриптов с помощью командлета. Например, следующая команда запускает простой скрипт-блок, который получает числа от 1 до 50 в качестве фонового задания:Start-Job {1..50}
Вы можете передать аргументы в скрипт-блок с помощью этой однострочной команды:
Start-Job {Param($log,$newest) Get-EventLog $log Newest $newest} -ArgumentList "system",25
Или вы можете запустить сценарии:
Start-Job -FilePath C:\scripts\Send-UptimeMail.ps1 -ArgumentList (Get-Credential jhicks@jdhitsolutions.com)
Вы можете увидеть результаты этих трех команд ниже. Я запускал эти команды в PowerShell 3.0. Однако они также будут работать в PowerShell 2.0, хотя вы не увидите столбец PSJobTypeName.
Выходные данные из
Start-Job
являются объектом очереди заданий. Командлеты-Job
для управления заданиями и их результатами. Вы можете ссылаться на вакансии по идентификатору. На изображении выше обратите внимание, как идентификаторы заданий меняются с 1 до 3.
Фоновые задания источника PowerShell
Приведенная выше ссылка содержит гораздо больше подробностей, охватывающих следующие темы:
Использование
Get-WMIObject
для создания фоновых заданийИспользование
Invoke-Command
для создания фоновых заданийУправление фоновыми заданиями
Получение результатов работы
Остановка и ожидание работы