PowerShell [wmiclass] Win32_Process.Create() затем дождитесь завершения пакетного файла

Я запланировал задание агента SQLserver, которое выполняет сценарий PowerShell, который вызывает пакетный процесс для запуска. Однако при запуске PowerShell он не дождался завершения пакетного файла, прежде чем перейти к следующему шагу задания. Что я могу сделать, чтобы "подождать", пока пакетный файл не завершится, прежде чем двигаться дальше?

это команда:

  ([WMICLASS]"\\SERVER\ROOT\CIMV2:win32_process").Create("cmd.exe /c E:\BatchFiles\First_Batch_File.bat") 

1 ответ

Решение

Create метод вернет ProcessId процесса, который он создает. Вы можете проверить, завершился ли этот процесс с помощью Get-Process

$process = ([WMICLASS]"\\SERVER\ROOT\CIMV2:win32_process").Create("cmd.exe /c E:\BatchFiles\First_Batch_File.bat")
while ((Get-Process -Id $process.ProcessId -ErrorAction SilentlyContinue) -ne $null) {
    write-host "waiting"
    sleep 2
}
Другие вопросы по тегам