Установка Windows через Windows Deployment Services и Microsoft Deployment Toolkit

Как было написано в одной умной книге — если в вашем IT-отделе нет автоматизированной установки операционной системы, то её создание может быть самой важной задачей, которую вы когда-либо выполняли.
Для работы MDT необходимо:

  • WDS
  • Windows ADK
  • PowerShell
  • .net Framework
  • DHCP


План


Добавление роли Windows Deployment Services (WDS) на сервер


На сервере включаем роль WDS.

4y2m6-ala1acnfriijjw6qtxvrk.png

jo-txmswyu7dy2gape4d92tlkpc.png

tig4pbape3rezepb_zhowwehavk.png

Загрузка и установка на сервер необходимых компонентов


С официального сайта скачиваем и устанавливаем Windows Assessment and Deployment Kit (ADK):
1) Download the Windows ADK for Windows 10, version 1809 (возможно, новее)
2) Download the Windows PE add-on for the ADK

Отмечаем для установки:

  • Deployment Tools
  • Imaging And Configuration Designer
  • Configuration Designer
  • User State Migration Tools


cg2cugnbadl-voxlpnqgrxnbeus.png

Также скачиваем и устанавливаем Microsoft Deployment Toolkit (MDT)

Запуск и настройка WDS


Открываем консоль WDS

tsx4i6l6uvodfl80zdtvdxnk6qm.png

Запускаем конфигурирование.

l22_qb3kmpqan8vzfs-cbbsnrzw.png

В мастере настройки выбираем интеграцию с доменом.

ukfhssqpogmrhwerhfqsbjpm_ae.png

Задаем служебную папку WDS.

ukv8ghuoctyt4olqqfzf1e2j35w.png

На следующем шаге можно выбрать каким компьютерам будет отвечать сервер WDS:

  • Никому не отвечать — можно отключить работу сервера на время настройки или тестирования, например, чтобы пользователи не получали возможные конфликты при установке.
  • Отвечать только известным компьютерам — список составляется в консоли и если записи адреса компьютера нет, то он не получит возможность работать с сервером.
  • Отвечать всем клиентам — ответ получат все компьютеры. Если установить галку ниже, то при обращении неизвестных устройств (не записанных ранее) в консоли появится запись, что некий компьютер с определенным адресом запрашивает подключение. Можно отклонить или принять и процесс продолжится. Позже эти настройки можно изменить в консоли WDS.


slut8-cfwjztoqe0neuuulmbzla.png

Завершаем процесс первоначальной настройки. Имеем следующую структуру папок:

dl2kzyhwoqyhlw3shomj4hsqcva.png

WDS нам понадобится только для подключения и передачи образов, поэтому без подробного объяснения:

Install Images — установочные образы (не используем);
Boot Images — загрузочные образы (добавим созданные в MDT);
Pending Devices — появляются устройства запрашивающие соединение если включена опция «требуется подтверждение администратора».

Запуск и настройка MDT


Для настройки MDT запускаем его консоль. Microsoft Deployment Toolkit → Deployment Workbench.

dv3i5ae4pf9wzxh5-t4b8bwlm_g.png

Добавляем новую DeploymentShare. В ней будут храниться все файлы для установки.

ibdvx8blhqjdazcs7517wno_hbq.png

iv6aegx1oseodzop7fybblvqbvc.png

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

rc8uc-iaqljoj__9qur7klbt9y4.png

На завершающем этапе будет запущен процесс создания который должен пройти успешно.

tfrxqtav_w7vf9xsap6vlefab_e.png

Общая папка E:\DeploymentShare$ может переноситься на другие сервера простым копированием. Отключение и подключение осуществляется в консоли MDT.

Applications — приложения которые устанавливаются на операционную систему;
Operating Systems — операционные системы доступные для загрузочного образа;
Out-of-Box Drivers — драйвера (.inf);
Packages — пакеты обновлений безопасности, сервисные, языковые и т.д. (.cab и .msu);
Task Sequences — последовательность задач установки;
Selection Profiles — логические группы объединения контента;
Linked Deployment Shares — другие подключенные DeploymentShare с других серверов;
Monitoring — при включенной опции отображается ход выполнения установки на клиентах.

_q6rtnedzux_xvprh5pj4rd4qmm.png

Открываем свойства нашей шары MDT Deployment Share. На вкладке General можно выбрать для каких платформ создавать .wim файлы с которых позже можно будет загружаться.

1y_-wpvioyu2hutijrk2ijmlrb8.png

На вкладке Rules настраиваются конфигурационные файлы автоматизации MDT. В самом окне отображается текст файла .\Control\CustomSettings.ini, а под кнопкой Edit Bootstrap.ini файл .\Control\Bootstrap.ini.
CustomSettings.ini — находится на сервере и скрывает шаги меню установки, а также определяет некоторые параметры установки.
Bootstrap.ini — находится в загрузочном образе и определяет параметры для подключения к DeploymentShare.

wfci6r8wfjlxgfxlapnyj7em19y.png

.\Control\CustomSettings.ini

OSInstall=Y //установить операционную систему
JoinDomain=alx*.com //ввести в этот домен
DomainAdmin=alx - имя пользователя используемого для присоединения
DomainAdminDomain=alx*.com //домен пользователя
DomainAdminPassword= //пароль пользователя
AdminPassword= //пароль локального администратора на новой машине
HideShell=YES //скрыть Shell
SkipUserData=NO //пропустить шаг о решении сохранности пользовательских данных (если установка производится поверх существующей системы)
TimeZoneName=N. Central Asia Standard Time //временная зона
SkipTimeZone=YES //пропустить выбор временной зоны
UILanguage=ru-RU //выбор языка интерфейса
UserLocale=ru-RU //выбор местоположения
SkipLocaleSelection=YES //пропустить выбор месторасположения
SystemLocale=ru-RU //выбор языка для non-Unicode программ
SkipCapture=YES //пропустить захват установленной операционной системы
SkipComputerName=NO //пропустить ввод имени компьютера
SkipDomainMembership=YES //пропустить членство в домене
SkipAdminPassword=YES //пропустить пароль администратора
SkipProductKey=YES //пропустить ввод лицензионного ключа
SkipComputerBackup=YES //пропустить выполнение резервного копирования
SkipBitLocker=YES //пропустить настройку шифрования BitLocker
SkipSummary=YES //пропустить страницу с выводом результирующих настроек
EventService=http://SRV04:9800 //установить сервер назначения для логов


Список временных зон

fj6vuqy87usgqtdxsw7iwnwxg6m.png

.\Control\Bootstrap.ini

[Settings]
Priority=Default
[Default]
DeployRoot=\\SRV04\DeploymentShare$
UserID=alx //имя пользователя для доступа к папкам Deployment Share
UserDomain=alx*.com //домен пользователя
UserPassword= //пароль пользователя
KeyboardLocale=en-US //выбор языка
SkipBDDWelcome=YES //пропустить начальную страницу установщика


На вкладке Windows PE настраивается создание загрузочных образов. Можно отключить на первой вкладке создание .wim файла, но выбрать на третьей .iso файл, если он нам нужен. Сейчас оставил только платформу x64. Второй пункт Generate a Lite Touch bootable ISO image понадобится, если нам необходим загрузочный ISO файл который мы могли бы записать на флешку или диск и загрузиться с него. Scratch space size — размер памяти в мегабайтах выделяемой для скриптов и команд установщика.

vbqa0lw78zmpqenkh7apsswdi1c.png

На вкладке Features можем добавить какие-либо компоненты в загрузочный образ. На вкладке Drivers and Patches лучше выбрать созданный специально для загрузочного образа Selection profile с сетевыми драйверами.
На следующей вкладке Monitoring включаем опцию чтобы он начал принимать логи от клиентов во время установки и отображать статус в папке Monitoring.

В соответствии со своей политикой безопасности добавляем разрешения на чтение каталога DeploymentShare$ и на этом простая настройка MDT закончена.

_grwheitdlrp1e-l9zceobi0goi.png

Импорт приложений


В контекстном меню папки Applications выбираем пункт New Application.

fls70pzut1fe-atayzuvbh3kjbw.png

Добавим Google Chrome.

capl-d3hmiksdwlyidrdj3cwf-i.png

Скачиваем Standalone Enterprise на 64 бита и сохраняем в отдельную временную папку, например, E:\Soft. Указываем, где программа находится и выбираем опцию чтобы всё содержимое было перемещено в новую папку.

0qjvpqqkpmudaabntzseysmkj1o.png

Далее составляем команду для тихой установки этого приложения и заполняем соответствующее поле.

joeth2mxkzimrkr6unzu38sm9_q.png

tx_o8xxq43s1fnngcmjeiaaiz4w.png

По аналогии добавляем весь нужный нам софт.

При переходе в свойства импортированного приложения на вкладке General можно редактировать ранее заполненные параметры, скрыть из списка выбора приложений при установке (если хотим устанавливать принудительно через задачу, например) и отключить это приложение в MDT вовсе если нужно исключить его использование в установке, но не желаем удалять (например, тестирование или обновление).

mhnys3zowc9x5owygldndp74izo.png

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

hcslescelpvu0at5gmnkz1lc6fa.png

На последней вкладке Dependencies указываются зависимости. Если для приложения нужны какие-то дополнительные установки, то тут указывается их порядок. Только после установки зависимостей установится основное приложение. Софт, указанный в списке, должен быть импортирован заранее.

0pjz5jacaedpb1ekd32d6-_9z68.png

Импорт установочных образов


В папку Operating Systems добавляем операционную систему. У меня имеется .wim файл с Windows 10 Pro x64.

Почему .wim?

Лицензий на LTSC нет, только Pro. Поэтому приходится с выходом новой версии скачивать актуальную Windows 10 и с помощью MSMG ToolKit вычищать предустановленное… программы. На выходе получается .iso с вложенным .wim.


swkf78ds6ki_ugxwfbs7-4ybtmo.png

cia9tw67euv_dmfn2hro7fjy2zu.png

di5kxnhdoyupgkzvsmgklka5z9s.png

kunnu5vvt7h5jn7sud9zqut3sfe.png

Переименовываем в более удобный вид.

gvvqs2zaie-h2ypfzmxaamsiiea.png

Импорт драйверов


Для примера импортируем драйвера для сетевых карт Intel. Стоит сразу заметить, что любые архивы должны быть распакованы т.к. MDT автоматически по указанной директории ищет именно .inf файлы.

-bqjm28feaujot4ibmv1hqsog0k.png

_zmerutvjiwgv5fu3d9qzlaxdmw.png

uuwrdr_rsd8mnrioticgs0ekgrq.png

y2rxotfhsgwoeg5ewedpbtj1fsm.png

tnyljmepqvmhsdrxpiml10qeyci.png

f1hrwwhycg3sswioxhiuoqg-bfg.png

Целесообразно создавать подпапки для разделения производителей и моделей компьютерного оборудования. Отдельно стоит выделить драйвера для сетевых карт и дисков для загрузочного образа с помощью Selection Profiles.

Импорт пакетов


Если имеется WSUS, то можно указать на папку с его расположением и все пакеты будут найдены автоматически (из найденных сортировать через Selection Profiles). Если нет, то необходимо вручную скачать пакеты и указать место их расположения.

bzfzb0xykgi6k2j2bqe5v84jwu8.png

jlopfuiwottmhiwrm5lfvwhwseu.png

guw6bqav1l4oqbmdapyi9u7qapq.png

Создание задач


Task Sequences — это последовательность задач для установки. Можно добавлять, удалять или изменять шаги установки. На первой странице при добавлении задается ID и название.

3lmnke8udsaxwvuokljoocgcvh8.png

Выбирается шаблон.

c85m-gqcqhpba4kd2jzyzcindwk.png

Выбор операционной системы из добавленных ранее.

vvotsieb6rkthuhs2plmzyry8b8.png

Ввод лицензионных ключей. Ключ будет указан после или во время установки, поэтому не задан.

ktubuv3zozee1jajgbrrwxzfe_c.png

Вводим имя пользователя и название организации.

i_hlwn5vre1ty5naf0yahmvtfjo.png

Пароль будущего локального администратора.

srqowdmmgh9mh9uibkx4oudz4ve.png

После создания можно аналогично просматривать её свойства и вносить изменения.

b0ljg89sdvq4muhmbhp4s4vr_cm.png

На вкладке Task Sequence описан весь процесс выполнения установки. Последовательность необходимо изменять под свои нужды.

e731pnh5aa2aekey2chjqnr3rxa.png

Для примера я добавлю скрипт включающий возможность подключиться по RDP т.к. по умолчанию после установки она отключена.

В папке .\Scripts\Custom создан скрипт на PowerShell Enable_RDP.ps1:

(Get-WmiObject Win32_TerminalServiceSetting -Namespace root\cimv2\TerminalServices).SetAllowTsConnections(1,1)
(Get-WmiObject -Class "Win32_TSGeneralSetting" -Namespace root\cimv2\TerminalServices -Filter "TerminalName='RDP-tcp'").SetUserAuthenticationRequired(1)
Enable-NetFirewallRule -DisplayGroup "Remote Desktop"


Далее выбираем желаемое место в этом порядке и добавляем новый пункт.

kroznzubkfji-ucumkhcwvdpsgo.png

a2sebndsjksq6fzcusroscaoowi.png

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

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

nc1r8qo7rshn0lu50xsxsp0m7pc.png

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

e-hh7kleh047sflffnbpnjobp_o.png

Обновление DeploymentShare необходимо выполнять после:

  • обновления загрузочных драйверов (сетевых карт и дисковых накопителей);
  • добавления компонентов в загрузочный образ;
  • изменения параметров загрузочного образа;
  • обновления версии Windows ADK;
  • изменения Bootrstrap.ini;
  • изменения файлов «экстра»-директорий.


Переходим в консоль WDS и в папку Boot Images добавляем созданный загрузочный образ. WDS скопирует этот образ в свой рабочий каталог.

hofnpjeowy81c10khdgavtp6tzi.png

Тестирование


Настраиваем на тестовом компьютере загрузку по сети. Сервер WDS определяется автоматически. По умолчанию, компьютер ожидает нажатия F12 для продолжения загрузки. Эта настройка меняется в свойствах сервера WDS на вкладке Boot.

wj32g83vzky-aqtlcwrhcvbl-am.png

wjoperj6o0pldldzhfmr2ldg24a.png

Большинство настроек было определено в конфигурационных файлах, остается заполнить недостающие. Выбираем доступный Task Sequences.

2y7ubbboryagqc8kkezxznbd5oq.png

Задаем имя компьютера.

c33c1rdzyds-zlzabcs50apqzzo.png

Данная настройка позволяет сохранить профили пользователей. У нас чистая установка, поэтому оставим как есть.

8s33yeb0xi_zkointpvurc1knlg.png

Можно и восстановить откуда-либо.

vjnwrvpwgpp954wiqd3atbitu1w.png

Выбираем необходимый софт.

bjoghfmx5959ym6sq3yxzsgkciq.png

Дальнейшая установка производится в автоматическом режиме.

7rh9sdxzptu-2wlyu65xorjp3sk.png

При включенном мониторинге за ходом процесса установки можно наблюдать через консоль.

iwg9kjmzub8gdtyygdjsfpawbna.png

В конечном итоге, затратив пару минут своего времени (не считая установку) на загрузку по сети и ввод оставшихся настроек, мы получаем готовую к работе отвечающую нашим требованиям операционную систему. Сложность конечного результата определяется заранее, поэтому смысла особого не имеет.

ej8ka__iq4hggffihy9colvywno.png

Явные плюсы автоматизации:

  • Экономия своего времени. Во время установки можем заниматься интересными делами.
  • Единообразие устанавливаемых систем.
  • Меньше время ожидания, чем это делалось бы вручную.
  • Возможность менять отдельные элементы при изменениях, а не пересобирать образ целиком.


Полная официальная документация MDT

© Habrahabr.ru