Nov 13, 2009

OSD SCCM: способы задания имени компьютера


Процесс установки операционной системы через OSD SCCM в принципе удовлетворяет большинству предъявляемых к нему требований: он занимает мало времени и еще меньше сил, на выходе мы получаем полностью готовый к работе компьютер с установленными программами, драйверами и последними обновлениями безопасности. И все с помощью нескольких кликов мыши. Не жизнь, а сказка. Но аппетит, как известно, приходит во время еды и со временем (а иногда и сразу, на этапе планирования) у системных администраторов появляются новые «хотелки» которые необходимо поддержать в OSD.
Пожалуй, самой частой упоминаемой из них является желание в явном виде указать те или иные параметры перед началом установки ОС. Чаще всего таким параметром является имя компьютера. Действительно, пользователям трудно объяснить, почему их компьютер называется MININT-KGKGUBG, а не COMP-V-PUPKIN. Либо на предприятии существует политика, которая предписывает именовать все компьютеры, опираясь на их роль и территориальную принадлежность, например W-MSK-000129.


Вариант I – Computer Association

Одним из способов решения данной проблемы является заведение записи компьютера в базе SCCM. В этом нам поможет механизм Computer Association, смысл которого заключается в ручном добавлении пары Имя компьютера – MAC адрес в базу данных SCCM.
Для того чтобы вручную добавить компьютер в базу данных SCCM необходимо перейти к пункту: Configuration Manager Console – Site Database – Computer Management – Operating System Deployment – Computer Association – Actions: Import Computer Information. В появившемся мастере доступны два способа добавления записей: Import computer using file (добавление группы компьютеров с помощью CSV файла) и Import single computer (добавление одиночного компьютера).

Для примера добавим одиночный компьютер с желаемым именем W-TST-0001 и MAC-адресом 00:E0:4C:62:02:B0. Если мы добавляем новый, ранее не известный SCCM компьютер, то поле SMSBIOS GUID можно не заполнять, оно будет заполнено автоматически.

Параметром Source computer мы можем указать уже существующую запись в базе данных SCCM, с которой будет ассоциирована новые данные (имя и MAC-адрес).

Далее указываем коллекцию в которую будет добавлена запись.

Теперь рассмотрим способ добавление группы компьютеров через файл.
Для начала необходимо сформировать сам файл.

Затем выбираем пункт: Import computer using a file. Указываем место нахождение файла, и соответствие столбцов файла и полей БД.


Но такой способ (Computer Association) приемлем, только если у вас малое количество компьютеров и при этом он требует значительных трудозатрат (предварительно необходимо собрать MAC-адреса компьютеров и внести их в базу). Если есть возможность – переложите эту «ношу» на поставщика вашей техники. Пусть вместе с бухгалтерскими документами, вам передается и заранее сформированный файл. Другим вариантом частичного решения проблемы будет экспорт данных из БД вашего DHCP сервера. Но по многим причинам он далек от оптимального:
  • необходимо чтобы компьютеры получили адрес от DHCP сервера;

  • выгрузку из DHCP необходимо вручную обработать и удалить записи известных компьютеров;

  • выгрузку из DHCP необходимо обработать и привести MAC адрес к виду XX:XX:XX:XX:XX.

Вариант II – Автоматическая генерация имени

Рассмотрим другой способ задания имени компьютера. Он будет основываться на обработке заранее известных нам признаков. Например, если за такой признак мы возьмем его серийный номер, и тип компьютера (рабочая станция или ноутбук), то мы сможем формировать примерно такие имена компьютеров:
N-DGDG3546
Для того чтобы воспользоваться данным методом, нам необходим скрипт, который мог бы обрабатывать переменные OSD (OSD variables). Мы можем написать такой скрипт с нуля самостоятельно, либо воспользоваться уже готовой обвязкой из скриптов LTI из набора MDT 2010. Для этого нам необходимо выполнить условия:
  1. установить на сервере MDT 2010

  2. интегрировать MDT 2010 в SCCM 2007

  3. создать и использовать Microsoft Deployment Task Sequence

Думаю что процесс установки MDT не вызовет вопросов, поэтому его описание я опущу. А для того чтобы интегрировать MDT в SCCM необходимо запустить Start – All pograms – Microsoft Deployment Toolkit 2010 – Configure ConfigMgr Intergation и в появившемся мастере выбрать параметр Install the ConfigMgr extensions.
После этого возможно создание MDT Task Sequence в консоли SCCM. Для этого переходим в пункт OSD – Task Sequence – Create Microsoft Deployment Task Sequence.
Внимание! Рассматривается работа MDT 2010 и SCCM 2007 SP2. Настройки для других версий SCCM могут незначительно отличаться.
Выбираем шаблон для рабочих станций: Client Task Sequence.

Вводим название и комментарии.

Задаем настройки присоединения к домену. Необходимо ввести лицензионный ключ, причем установка XP SP3\Vista\Win7 в принципе его не требует, но в поле его вбить все равно необходимо.

Выбираем, будем ли мы снимать образ с данной установки или нет.

Указываем загрузочный образ. Если его у нас нет, мы можем создать (см. ниже).

Переходим к самому интересному – к созданию различных пакетов MDT. В частности именно этот пакет (MDT Binaries) содержит в себе файлы скриптов LTI.

Вводим служебные данные пакета.

Указываем WIM файл с операционной системой. Кроме того мы можем использовать вариант установки ОС через пакет (OS Install Package), либо тут же создать новый образ\пакет.

Указываем пакет с клиентом SCCM.

Указываем пакет с USMT, даже если мы не планируем использовать данное средство, как и в случае с лицензионным ключом, нам всеже придется создать пакет.


Данный пакет (MDT Settings) содержит файл unattend.ini\unattend.xml и описывает параметры установки ОС.


Использовать или нет sysprep. Отмечать необходимо только если у нас в начале выбран вариант снятия образа (capture image).

Проверяем итоговую сводку настроек.

После создания пакетов, не забудте указать для них Distribution Point!
А теперь собственно, то ради чего мы создавали MDT Task Sequence. Открыв созданный TS, необходимо выкинуть «неинтересные» нам шаги (например USMT) и добавить шаг со скриптом. Добавлять шаг со скриптом необходимо перед шагом TS:
Общий смысл скрипта сводится к изменению значения переменной OSDCOMPUTERNAME на необходимое нам значение. Сделать это можно добавив например такой скрипт в TS перед шагом применения образа ОС.









Сам скрипт можно подожить в исходную папку пакета MDT Binaries (в моем случае это \\sccm2007\source$\osd\mdt_binaries\scripts\).

В итоге мы будем получать уже более-менее осмысленное имя компьютера.

Вариант III – MDT Boot Wizard Hook

Но и этот способ не оптимален. К счастью, в новой версии MDT была внедрена штатная поддержка хуков TS, что позволило нам запускать свой мастер, до старта мастера OSD. Следует сказать, что OSD SCCM предназначен для установки ОС с помощью метода Zero Touch Installation (ZTI) – т.е. полностью в автоматическом режиме. Работа данного метода лучше всего демонстрируется на примере Task Sequence на принудительную перезаливку компьютеров. Когда задание запускается не по сети (PXE) или с диска (CD\DVD Boot Media), а из клиентской операционной системы, а затем производит ее переустановку. В MDT же применяется другой метод: Lite Touch Installation (LTI) – т.е. пользователь предварительно отвечает на некоторые вопросы некоего мастера, а затем установка происходит в автоматическом режиме. ZTI метод предназначен в первую очередь для массовой установки\переустановки, и дает меньшую свободу действий по сравнению с LTI (она есть, но основана на автоматическом выборе неких критериев, например: в зависимости от модели и производителя компьютера). LTI, напротив, дает большую свободу, но меньше приспособлен к массовому развертыванию. До выхода MDT 2010 LTI метод был не возможен в OSD SCCM, теперь при интеграции MDT 2010 и SCCM 2007 мы можем использовать и LTI установку. Для поддержки LTI нам необходимо, во-первых, использоваться загрузочный образ MDT, во-вторых, включить хук при создании этого образа.
Чтобы создать MDT Boot Image необходимо в консоли администрирования SCCM перейти к разделу Operating Sustem Deployment – Boot Image – Create Boot Image Using Microsoft Deployment.

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

Вводим название загрузочного образа и другие информационные данные.

Самое интересное начинается на странице Image Options. Во-первых, нам необходимо выбрать архитектуру загрузочного образа (х86 или х64). Во-вторых, указать, что данный образ будет содержать в себе hook файл. Для этого отмечаем параметр Add media hook files to enable the Deployment Wizard for this boot media.

Параметр Custom background bitmap file мы можем указать использование в загрузочном образе собственных обоев. В принципе точно такого же результат можно добиться потом, указав данный параметр в свойствах образа в консоли администрирования SCCM. Параметр Extra directory to add указывает папки, содержимое которой будет скопировано в корень загрузочного диска. В эту папку полезно помещать программу trace32.exe, кроме того сюда же, а точнее в .\Deploy\Scripts\ необходимо добавлять свои скрипты и файлы, если вы планируете их использовать в при работе мастера.
Включение хука, в принципе, регулируется только наличием файла TS.ini в корне загрузочного образа. Загружаясь WinPE проверяет наличие данного файла и если находит его, то запускает указанный в нем скрипт. Это метод работал и при использовании MDT 2008, однако данный файл необходимо было включать в образ вручную.
Однако мало запустить скрип, необходимо создать мастер, который будет выполнятся по указанному нами сценарию. По умолчанию такой мастер уже существует, он называется MDT Boot Wizard и выполняет только одну функцию: запрос имени компьютера у пользователя. Как это происходит можно увидеть на видео в блоге Michael Niehaus. (http://blogs.technet.com/mniehaus/attachment/3284170.ashx).
Мастер представляет из себя xml-файла параметров, который взаимодействуя с готовой формой Wizard.hta и показывает заданные параметры пользователю. По умолчанию файл описания Deploy_SCCM_Definition_ENU.xml находится в папке %programfiles%\Microsoft Deployment Toolkit\SCCM\
Внимание! В текущей версии MDT 2010 есть небольшая ошибка. В загрузочный образ MDT Boot Image включаются только заранее предопределенные файлы из папки %programfiles%\Microsoft Deployment Toolkit\SCCM\. Например файл Deploy_SCCM_Definition_ENU.xml и Deploy_SCCM_Definition_ENU_my_custom.xml будут скопированы в образ. А файл Deploy_SCCM_MyCompany.xml нет. Точно так же будет и с файлами скриптов. Для добавления этих файлов в образ, необходимо воссоздать структуру каталогов Disk:\Deployment\Scripts и эту папку указывать при создании образа (Extra directory to add).

No comments:

Post a Comment