Для автоматического развертывания 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 на любое число, и тогда, я думаю, у вас все хорошо.
Надеюсь это поможет!