Автоматизация установки клиентских операционных систем при помощи Windows Deployment Services. Часть II. Создание файлов ответов.

17 комментариев

В этой статье речь пойдет о создании файлов ответов, необходимых для автоматизации установки операционных систем средствами Windows Deployment Services.

Итак, у нас уже есть установленный и сконфигурированный сервер WDS. Также на сервер добавлены необходимые для установки загрузочные (Boot Images) и установочные образы (Install Images), а также образы захвата (Capture Images).

Для выполнения дальнейших действий нам понадобится пакет Windows Automated Installation Kit, он же WAIK, который можно найти на сайте Microsoft.

Загрузив WAIK, установим его на компьютер. Это будет отдельный компьютер, на котором мы будем создавать файлы ответов для развертываемых операционных систем.

Также нам нужен будет файл install.wim, находящийся на дистрибутивном диске Windows 7 в папке Sources. В нашем случае это русская версия Windows 7 в 64-х разрядной редакции. Скопируем файл на жесткий диск компьютера.

Из пакета WAIK нам нужна будет утилита Windows System Image Manager. Запустив ее, мы увидим пустой интерфейс.

Далее нам нужно будет выбрать wim-файл, содержащий образ операционной системы.

Нажимаем File, далее Select Windows Image и указываем нужный нам файл.

В открывшемся диалоговом окне нам предлагается выбрать нужную редакцию операционной системы. Мы выберем Windows 7 Professional и нажмем OK.

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

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

Итак, файл каталога создан и теперь мы можем заняться созданием файлов ответов.

Как известно, сервер WDS использует два вида файлов ответов: файл ответов клиента WDS и файл ответов установочного образа.

Файл ответов клиента WDS, windows deployments services client unattend file, позволяет автоматизировать ту часть установки, в которой, после загрузки компьютера с помощью загрузочного образа, предоставленного ему сервером WDS, вводятся данные об учетной записи для доступа к серверу WDS, размечается жесткий диск и выбирается образ для установки.

Файл ответов установочного образа, image unattend file, применяется при автоматизации основной фазы установки операционной системы, т.е. после того, как установочный образ будет загружен на компьютер и он запустится уже со своего жесткого диска. Файлы ответов этого типа отличаются для операционных систем Windows 7 и Windows XP и настраиваются на уровне установочного образа.

Файл ответов клиента WDS (WDS client unattend file).

Выберем меню File и далее New Answer File…

В поле Answer File появится пока еще пустая структура будущего файла ответов.

Развернем пункт Components в поле Windows Image.

Щелкнем правой кнопкой мыши на пункте с названием, начинающимся с amd64_Microsoft-Windows-International-Core-WinPE_. Далее идет номер версии, который зависит от используемого образа операционной системы, а также языковая привязка, которая в нашем случае – neutral, поэтому в здесь и в дальнейшем мы не будем их указывать.

Щелкнув правой кнопкой мыши, выберем пункт Add Setting to Pass 1 windowsPE.

Это добавит настройки, содержащиеся в этом разделе в поле Answer File в группу windowsPE.

В поле Answer File развернем раздел amd64_Microsoft-Windows-International-Core-WinPE, щелкнем правой кнопкой на подразделе SetupUILanguage и выберем пункт Delete.

Снова щелкнем на разделе amd64_Microsoft-Windows-International-Core-WinPE в поле Answer File и в области, находящейся справа, для параметра UILanguage укажем значение ru-ru.

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

Это что касается установки Windows 7.

Если же устанавливаемая вами операционная система – Windows XP или Windows Server 2003, то этот параметр должен отсутствовать в файле ответов клиента WDS, иначе вышеупомянутое окно с запросом установочного образа опять-таки появится.

Учитывая, что в данном случае раздел amd64_Microsoft-Windows-International-Core-WinPE не будет содержать каких-либо параметров, его присутствие в файле ответов также не обязательно.

Естественно, если вы устанавливаете 32-х разрядную операционную систему, то соответствующий раздел будет называться x86_Microsoft-Windows-International-Core-WinPE.

Здесь есть одна особенность. Если в вашем файле ответов указаны параметры как для 32-х, так и для 64-х разрядной архитектуры, то выбор набора параметров, который будет использоваться, зависит от архитектуры загрузочного образа. То есть, если загрузка компьютера происходит с помощью 32-х разрядного загрузочного образа, то используются параметры с префиксом x86, если же загрузочный образ 64-х разрядный, то применяются параметры с префиксом amd64.

Упомянутая особенность состоит в том, что если вы устанавливаете 32-х разрядную версию операционной системы Windows XP, а в файле ответов, кроме 32-х разрядных, также присутствуют параметры для архитектуры x64, то в случае наличия значения для параметра UILanguage для 64-х разрядной архитектуры, диалоговое окно с требованием выбрать установочный образ все-таки появится.

Далее нам нужно разметить жесткий диск компьютера. Для этого мы развернем раздел amd64_Microsoft-Windows-Setup в поле Windows Image и добавим набор параметров DiskConfiguration в группу windowsPE файла ответов.

Развернем раздел amd64_Microsoft-Windows-Setup в поле Answer File, щелкнем правой кнопкой мыши на подразделе DiskConfiguration и выберем Insert New Disk.

Щелкнем левой кнопкой мыши на появившемся разделе Disk и в поле параметров справа от Answer File для DiskID введем значение 0. Это будет указывать, что мы будем работать с первым диском в компьютере. Для параметра WillWipeDisk укажем значение true. Устанавливая данное значение для параметра WillWipeDisk, мы указываем, что перед установкой операционной системы жесткий диск компьютера будет переразмечен и все существующие на нем разделы будут удалены.

Развернем раздел Disk, щелкнем правой кнопкой на CreatePartitions и выберем Insert New CreatePartition.

Добавится подраздел CreatePartition, в поле параметров которого мы укажем следующие:

В строке Order укажем 1. Для параметра Size введем 100, и в списке выбора для Type щелкнем на Primary.

Таким образом мы создадим primary-раздел на жестком диске размером 100 Mb.

Еще раз щелкнем правой кнопкой мыши на разделе CreatePartitions и выберем Insert New CreatePartition.

Для второго раздела укажем Order равный 2, для Size зададим значение 61440, и в поле Type также выберем Primary.

Теперь второй раздел на жестком диске компьютера будет также primary-разделом и размер его будет равным 60 Gb.

Теперь щелкнем правой кнопкой мыши на разделе ModifyPartitions и выберем Insert New ModifyPartition.

В качестве параметров для появившегося подраздела ModifyPartition укажем:

Active = true

Format = NTFS

Label = System

Order = 1

PartitionID = 1

Таким образом мы зададим, что первый раздел жесткого диска компьютера (PartitionID = 1) будет обработан первым (Order = 1), отформатирован в NTFS (Format = NTFS), получит метку System (Label = System) и будет помечен как активный (Active = true).

Добавим еще один подраздел ModifyPartition и зададим следующие настройки для второго раздела жесткого диска:

Format = NTFS

Order = 2

PartitionID = 2

Теперь нам нужно добавить к нашему файлу ответов еще один набор параметров, находящийся под amd64_Microsoft-Windows-Setup. В поле Windows Image щелкаем правой кнопкой мыши на WindowsDeploymentServices и выбираем Add Setting to Pass 1 windowsPE.

В поле Answer File развернем WindowsDeploymentServices, развернем ImageSelection и выберем InstallImage.

В поле параметров для ImageGroup введем название группы, где находится установочный образ, а в поле ImageName введем имя самого образа.

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

ImageGroup — Windows 7 (x64)

ImageName — Windows 7 Professional (x64)

Выделим пункт InstallTo и в поля DiskID и PartitionID введем соответственно номер диска и номер раздела, куда мы будем устанавливать операционную систему. В нашем случае DiskID = 0, а PartitionID = 2.

Развернем раздел Login и выберем Credentials. Сюда мы введем учетные данные пользователя, от имени которого будет происходить установка операционной системы. Этот пользователь должен будет обладать правом доступа к серверу WDS для загрузки образа операционной системы (в конфигурации по умолчанию это может сделать любой пользователь домена). Также, возможно, ему понадобятся права на сброс пароля компьютера в Active Directory, но об этом позже.

В нашем случае это будет пользователь wdsuser@domain.com.

Щелкнем по пункту меню Tools и выберем Validate Answer File.

Если проверка не выявит никаких ошибок, о чем будет свидетельствовать запись в поле Messages, сохраним его под именем wdsclient.xml.

Скопируем наш файл ответов на сервер WDS в папку D:\WDS\WdsClientUnattend.

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

Данный файл ответов создается для автоматизации оставшихся фаз установки и отличается для операционных систем Windows 7 и Windows XP. Начнем с Windows 7.

Файл ответов установочного образа Windows 7 (Windows 7 image unattend file).

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

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

В System Image Manager создадим новый файл ответов путем выбора File и New Answer File…, а также укажем уже использовавшийся нами при создании предыдущего файла ответов wim-файл, содержащий образ операционной системы, выбрав File – Select Windows Image. В открывшемся диалоговом окне выберем Windows 7 PROFESSIONAL.

В поле Windows Image раскроем список Components и щелкнем правой кнопкой мыши на amd64_Microsoft-Windows-Shell-Setup и выберем Add Setting to Pass 4 specialize.

В поле Answer File развернем добавленный набор параметров и удалим все содержащиеся в нем подразделы. Выберем добавленный раздел и в поле справа укажем следующие параметры:

ComputerName — %machinename%

ProductKey – ключ продукта

RegisteredOwner – владелец копии операционной системы

RegisteredOrganization – организация, в которой используется данная копия.

Задавая переменную%machinename% в качестве значения для параметра ComputerName мы указываем, что имя компьютера будет браться из предварительно созданной для него учетной записи в Active Directory.

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

При использовании же метода Secure Join, одним из требований является наличие значения %machinename% для этого параметра. Поэтому независимо от используемого метода имеет смысл сразу установить его в %machinename%.

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

Существует два метода ввода компьютера в домен при помощи файлов ответов – Unsecure Join и Secure Join.

При использовании метода Secure Join, т.е. безопасный ввод компьютера в домен, учетные данные для выполнения этой операции указываются в файле ответов. При использовании же Unsecure Join, т.е. небезопасный ввод компьютера в домен, пароль компьютера сбрасывается в определенное значение в конце фазы Windows Preinstallation Environment, она же WinPE. Делается это от имени учетной записи, указанной в файле ответов клиента WDS.

При установке Windows 7 – это автоматически сгенерированный сервером WDS пароль, который передается на добавляемый компьютер в секции <MachinePassword> файла ответов.

При установке Windows XP пароль сбрасывается в значение по умолчанию, которым является имя компьютера.

Если у пользователя нет прав на сброс пароля компьютера, то в случае Windows XP это может сделать администратор, щелкнув правой кнопкой мыши на объекте компьютера в Active Directory Users and Computers и выбрав в контекстном меню команду Reset Account. Сделано это должно быть до завершения фазы основной установки операционной системы. Так как в случае Windows 7 пароль генерируется сервером WDS, данный метод неприменим для установки этой операционной системы.

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

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

С другой стороны, свое слабое место есть и у этого метода. В частности это касается установки Windows XP. Так как пароль учетной записи компьютера при сбросе устанавливается в значение, соответствующее имени компьютера, злоумышленник может этим воспользоваться в период времени между сбросом пароля в конце фазы WinPE, и добавлением компьютера в домен в конце основной установки операционной системы.

Для использования метода Secure Join должны быть соблюдены следующие условия:

значение параметра UnsecureJoin в секции amd64_Microsoft-Windows-UnattendedJoin\Identification группы specialize должно быть false;

в этой же секции, в качестве значения для параметра JoinDomain должно быть указано имя домена, к которому добавляется компьютер;

в секции amd64_Microsoft-Windows-UnattendedJoin\Identification\Credentials должны быть указаны имя, домен и пароль учетной записи, от имени которой будет происходить добавление компьютера;

переменная ComputerName секции amd64_Microsoft-Windows-Shell-Setup группы specialize должна содержать значение %machinename%, в данном случае имя компьютера будет взято из его учетной записи в Active Directory. Соответственно, сама секция тоже должна существовать.

Для использования метода Unsecure Join требуется только то, чтобы значение переменной UnsecureJoin секции amd64_Microsoft-Windows-UnattendedJoin группы specialize содержало значение true.

Его мы и будем использовать. Отметим, что сброс пароля в нашем случае будет происходить от имени пользователя wdsuser@domain.com, учетные данные которого указаны в файле ответов wdsclient.xml.

Добавим раздел amd64_Microsoft-Windows-UnattendedJoin в группу specialize.

В поле Answer File развернем добавленный раздел, развернем содержащийся в нем подраздел Identification и удалим его дочерние подразделы Credentials и Provisioning. Выберем подраздел Identification и в поле параметров в строке UnsecureJoin укажем true.

Теперь нам нужно добавить несколько наборов параметров в группу oobeSystem.

В поле Windows Image щелкнем правой кнопкой на разделе amd64_Microsoft-Windows-International-Core и выберем Add Setting to Pass 7 oobeSystem.

Для содержащихся в нем параметров укажем следующие значения: