Я устанавливаю довольно сложную программу, используя последовательность задач в SCCM 1607 (также известном как SCCM 2016). В последовательности задач у меня есть блок try / catch, чтобы я мог восстановить компьютер до рабочего состояния в случае сбоя TS.
Вот так:
Проблема здесь в том, что при фактическом сбое в последовательности задач процедура обработки ошибок выполняет свою работу, и последовательность задач корректно завершается. Я собираю свои собственные журналы в последовательности, чтобы отразить ошибку, но что касается SCCM, установка прошла успешно. Пользователь не получает никаких уведомлений, и приложение отображается в Центре программного обеспечения как установленное, хотя это не так. Мне нужно просмотреть свои собственные журналы, чтобы получить какие-либо отчеты об ошибках, и SCCM никогда не будет повторять установку самостоятельно.
Как я могу заставить последовательность задач выйти из строя на последнем этапе моего блока обработки ошибок? Я хочу, чтобы пользователь увидел ошибку и позвонил в службу поддержки. Я также хочу видеть сбой в консоли SCCM, и я хочу, чтобы TS повторил попытку самостоятельно (старая версия не удаляется, если она используется, и почти все сбои, которые я видел при тестировании, потому что пользователь вошел в систему и запустил его до того, как TS смог его удалить).
Чтобы вызвать сбой последовательности задач, можно использовать шаг последовательности задач «Выполнить из командной строки» для выполнения команды, которая возвращает ненулевое значение.1 код выхода. Например:
cmd /c exit 1
(Конечно, вы также должны убедиться, что флажок «Продолжить при ошибке» для шага последовательности задач снят.)
Действительно, вы могли бы заменить 1
выше с любым другим номером, если вы хотите использовать разные коды выхода для отражения разных причин сбоя. Это позволит вам определить, какие установки не удались по той или иной причине.
При этом последовательность задач может быть не лучшим механизмом для этого конкретного варианта использования. Рассмотрите возможность развертывания этого программного обеспечения с приложением (или пакетом и программой) с помощью Набор инструментов для развертывания приложений Powershell. Он предоставляет множество полезных функций, в том числе возможность закрывать приложения и запрещать пользователям повторно запускать их до завершения установки.
1 Технически код выхода должен быть одним из чисел, не указанных в поле «Коды успеха» на вкладке «Параметры» шага последовательности задач, которые по умолчанию 0
и 3010
.