Мне нужно выполнить ряд задач на нескольких серверах Windows 2008, требующих повышенных разрешений, и поэтому мне пришлось создать серию запланированных задач, которые Я бегу через psexec. Поскольку они должны выполняться последовательно, я обнаружил и модифицировал сценарий powershell, который «останавливается» до тех пор, пока запланированные задачи не будут завершены на удаленных машинах. Проблема заключается в том, что когда я запускаю скрипт с psexec на удаленной машине, как только он завершает работу (указывается сообщением на выходе консоли), PowerShell.exe не выходит из строя, а скорее зависает и удерживает все обработать. Мне нужно, чтобы powershell завершил работу после выхода сценария задержки, но даже с ключевым словом exit в конце он остается в памяти и не позволяет процессу завершить работу. Я не очень опытный с PowerShell, так что я приложу мой сценарий в случае, если я делаю что-то глупое в нем:Скрипт Windows PowerShell, инициированный PSExec, не убивает процесс 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
Спасибо заранее для любой проницательности.
Хотя это не исправить мой конкретный вопрос, это гораздо более элегантное решение, и я реализовал его на месте мой. –
У меня возникли проблемы с запуском некоторых скриптов PowerShell поверх SSH, где PowerShell зависает после завершения последней команды (но только с некоторыми скриптами). Я работал над проблемой, подключив stdin powershell.exe к nul. Так что что-то ждало на stdin, но я не знаю, что. – JasonMArcher
Поскольку удаленное выполнение powershell было полностью в контексте нашей сети, и я мог удаленно запрашивать статус запланированной задачи, я обнаружил, что запуск скрипта локально, а не через psexec, привел к гораздо более последовательной и надежной работе. Это работало лучше, поэтому я думаю, что psexec ожидал чего-то. –