У меня есть скрипт, который запускает удаленное задание с помощью invoke-command -asjob на 20 серверах, чтобы запустить устаревшее приложение командной строки. Для его запуска может потребоваться несколько часов, поэтому я использовал цикл foreach, пока не получу 0 экземпляров (get-job - state running). Внутри цикла я поместил ход выполнения записи, чтобы проинформировать пользователя о том, сколько серверов все еще выполняет этот процесс.
Все работает хорошо, но мне нужно добавить небольшую функцию, чтобы пользователи, запускающие этот сценарий, могли остановить сценарий и убить все запущенные удаленные задания.
Теперь я знаю, как их убить, но я не знаю, как разрешить пользователю возвращать отзыв в мой цикл. Первоначально я думал о появлении кнопки GUI с использованием асинхронного пространства выполнения (как описано здесь http://www.vistax64.com/powershell/16998-howto-create-windows-form-without-stopping-script-processing.html), но похоже, что я не могу выполнять функции в потоке со своим сценарием из потока UI.
Можно ли разрешить моим пользователям останавливать сценарий и уничтожать удаленные процессы?