Назад | Перейти на главную страницу

Прервать последовательность задач и развертывание MDT 2012, если предварительные требования не выполнены

Для автоматического развертывания Windows 7, созданного с помощью MDT 2012, мы хотели бы, чтобы установка прерывалась, если не выполняются определенные обязательные предварительные условия.

Например, компьютер, получающий развертывание, должен иметь определенное членство в группе, чтобы гарантировать правильное применение конфигурации после развертывания с групповыми политиками.

Я знаю, что есть несколько вариантов добавления настраиваемой логики в последовательность задач - например, мы могли бы вызвать веб-службу (как описано в Именование в стиле RIS с MDT 2010: использование веб-службы) или мы можем добавить сценарий для создания настраиваемой последовательности задач (как описано в MDT 2012, настраиваемая переменная последовательности задач для выбора между образами операционной системы).

Но у нас возникают проблемы с определением того, куда добавить этот сценарий или вызов веб-службы, и как обеспечить прерывание развертывания в случае сбоя предварительных условий.

Есть ли общее решение проблемы обеспечения предварительных условий?

При добавлении пользовательского кода в последовательность задач развертывания с помощью сценария VBScript, содержащегося в файле сценария .wsf, вы можете включить набор служебных объектов и функций, добавив следующую строку в сценарий .wsf:

<script language="VBScript" src="ZTIUtility.vbs"/>

Когда эти служебные объекты доступны, вы можете затем вызвать функцию, как показано ниже, чтобы зарегистрировать ошибку в журнале развертывания (расположенном по адресу C:\MININT\SMSOSD\OSDLOGS\BDD.log).

oLogging.CreateEntry "Error - A prerequisite condition failed.", LogTypeError

Обратите внимание, что LogTypeError постоянная, определенная в ZTIUtility.vbs.

Регистрируя ошибку, вы сигнализируете MDT о том, что произошла фатальная ошибка. Я считаю, что это всегда будет приводить к тому, что MDT будет выдавать всплывающее окно с ошибкой в ​​пользовательском интерфейсе и автоматически прерывать развертывание.

Простое указание ZTIUtility сообщить об ошибке не сообщает секвенсору задач, что произошла ошибка. Я считаю, что вам нужно установить iRetVal на любое значение, кроме «0», а затем вернуться.

Что бы я сделал, если бы на вашем месте, я бы настроил веб-службу для сообщения о членстве в группе, а затем добавил бы некоторую логику, чтобы определить, присутствует ли допустимая группа. Если нет, установите iRetVal на любое число, и тогда, я думаю, у вас все хорошо.

Надеюсь это поможет!