Мне нужно выполнить ряд задач на нескольких серверах Windows 2008, которым требуются повышенные разрешения, и поэтому мне пришлось создать серию запланированных задач, которые я запускаю через psexec. Поскольку они должны выполняться последовательно, я нашел и изменил сценарий powershell, который «останавливается», пока запланированные задачи не будут выполнены на удаленных машинах. У меня проблема в том, что когда я запускаю сценарий с помощью psexec на удаленной машине, когда он завершает работу (на это указывает сообщение в выводе консоли), PowerShell.exe не завершается корректно, а просто зависает и удерживает весь процесс. Мне нужно PowerShell для выхода после завершения сценария задержки, но даже с ключевым словом exit в конце он остается в памяти и не позволяет завершить процесс. Я не очень опытен с PowerShell, поэтому я приложу свой сценарий на случай, если я сделаю что-то глупое:
while($true) {
$status = schtasks /query /tn "AutoDeploy"| select-string -patt "AutoDeploy"
if($status.tostring().substring(64,7) -eq "Running") { "Waiting for task to complete..." } else { break }
start-sleep -s 5
}
"Task complete."
exit
Заранее благодарим за понимание.