Установка Windows через Windows Deployment Services и Microsoft Deployment Toolkit
Как было написано в одной умной книге — если в вашем IT-отделе нет автоматизированной установки операционной системы, то её создание может быть самой важной задачей, которую вы когда-либо выполняли.
Для работы MDT необходимо:
- WDS
- Windows ADK
- PowerShell
- .net Framework
- DHCP
План
Добавление роли Windows Deployment Services (WDS) на сервер
На сервере включаем роль WDS.
Загрузка и установка на сервер необходимых компонентов
С официального сайта скачиваем и устанавливаем 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
Также скачиваем и устанавливаем Microsoft Deployment Toolkit (MDT)
Запуск и настройка WDS
Открываем консоль WDS
Запускаем конфигурирование.
В мастере настройки выбираем интеграцию с доменом.
Задаем служебную папку WDS.
На следующем шаге можно выбрать каким компьютерам будет отвечать сервер WDS:
- Никому не отвечать — можно отключить работу сервера на время настройки или тестирования, например, чтобы пользователи не получали возможные конфликты при установке.
- Отвечать только известным компьютерам — список составляется в консоли и если записи адреса компьютера нет, то он не получит возможность работать с сервером.
- Отвечать всем клиентам — ответ получат все компьютеры. Если установить галку ниже, то при обращении неизвестных устройств (не записанных ранее) в консоли появится запись, что некий компьютер с определенным адресом запрашивает подключение. Можно отклонить или принять и процесс продолжится. Позже эти настройки можно изменить в консоли WDS.
Завершаем процесс первоначальной настройки. Имеем следующую структуру папок:
WDS нам понадобится только для подключения и передачи образов, поэтому без подробного объяснения:
Install Images — установочные образы (не используем);
Boot Images — загрузочные образы (добавим созданные в MDT);
Pending Devices — появляются устройства запрашивающие соединение если включена опция «требуется подтверждение администратора».
Запуск и настройка MDT
Для настройки MDT запускаем его консоль. Microsoft Deployment Toolkit → Deployment Workbench.
Добавляем новую DeploymentShare. В ней будут храниться все файлы для установки.
Следующие опции относятся к процессу установки и могут быть изменены позже.
На завершающем этапе будет запущен процесс создания который должен пройти успешно.
Общая папка E:\DeploymentShare$ может переноситься на другие сервера простым копированием. Отключение и подключение осуществляется в консоли MDT.
Applications — приложения которые устанавливаются на операционную систему;
Operating Systems — операционные системы доступные для загрузочного образа;
Out-of-Box Drivers — драйвера (.inf);
Packages — пакеты обновлений безопасности, сервисные, языковые и т.д. (.cab и .msu);
Task Sequences — последовательность задач установки;
Selection Profiles — логические группы объединения контента;
Linked Deployment Shares — другие подключенные DeploymentShare с других серверов;
Monitoring — при включенной опции отображается ход выполнения установки на клиентах.
Открываем свойства нашей шары MDT Deployment Share. На вкладке General можно выбрать для каких платформ создавать .wim файлы с которых позже можно будет загружаться.
На вкладке Rules настраиваются конфигурационные файлы автоматизации MDT. В самом окне отображается текст файла .\Control\CustomSettings.ini, а под кнопкой Edit Bootstrap.ini файл .\Control\Bootstrap.ini.
CustomSettings.ini — находится на сервере и скрывает шаги меню установки, а также определяет некоторые параметры установки.
Bootstrap.ini — находится в загрузочном образе и определяет параметры для подключения к DeploymentShare.
.\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 //установить сервер назначения для логов
Список временных зон
.\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 — размер памяти в мегабайтах выделяемой для скриптов и команд установщика.
На вкладке Features можем добавить какие-либо компоненты в загрузочный образ. На вкладке Drivers and Patches лучше выбрать созданный специально для загрузочного образа Selection profile с сетевыми драйверами.
На следующей вкладке Monitoring включаем опцию чтобы он начал принимать логи от клиентов во время установки и отображать статус в папке Monitoring.
В соответствии со своей политикой безопасности добавляем разрешения на чтение каталога DeploymentShare$ и на этом простая настройка MDT закончена.
Импорт приложений
В контекстном меню папки Applications выбираем пункт New Application.
Добавим Google Chrome.
Скачиваем Standalone Enterprise на 64 бита и сохраняем в отдельную временную папку, например, E:\Soft. Указываем, где программа находится и выбираем опцию чтобы всё содержимое было перемещено в новую папку.
Далее составляем команду для тихой установки этого приложения и заполняем соответствующее поле.
По аналогии добавляем весь нужный нам софт.
При переходе в свойства импортированного приложения на вкладке General можно редактировать ранее заполненные параметры, скрыть из списка выбора приложений при установке (если хотим устанавливать принудительно через задачу, например) и отключить это приложение в MDT вовсе если нужно исключить его использование в установке, но не желаем удалять (например, тестирование или обновление).
На вкладке Details можно изменить внесенные настройки, обязать перезагружаться после установки и разрешить запуск только на выбранных платформах.
На последней вкладке Dependencies указываются зависимости. Если для приложения нужны какие-то дополнительные установки, то тут указывается их порядок. Только после установки зависимостей установится основное приложение. Софт, указанный в списке, должен быть импортирован заранее.
Импорт установочных образов
В папку Operating Systems добавляем операционную систему. У меня имеется .wim файл с Windows 10 Pro x64.
Лицензий на LTSC нет, только Pro. Поэтому приходится с выходом новой версии скачивать актуальную Windows 10 и с помощью MSMG ToolKit вычищать предустановленное… программы. На выходе получается .iso с вложенным .wim.
Переименовываем в более удобный вид.
Импорт драйверов
Для примера импортируем драйвера для сетевых карт Intel. Стоит сразу заметить, что любые архивы должны быть распакованы т.к. MDT автоматически по указанной директории ищет именно .inf файлы.
Целесообразно создавать подпапки для разделения производителей и моделей компьютерного оборудования. Отдельно стоит выделить драйвера для сетевых карт и дисков для загрузочного образа с помощью Selection Profiles.
Импорт пакетов
Если имеется WSUS, то можно указать на папку с его расположением и все пакеты будут найдены автоматически (из найденных сортировать через Selection Profiles). Если нет, то необходимо вручную скачать пакеты и указать место их расположения.
Создание задач
Task Sequences — это последовательность задач для установки. Можно добавлять, удалять или изменять шаги установки. На первой странице при добавлении задается ID и название.
Выбирается шаблон.
Выбор операционной системы из добавленных ранее.
Ввод лицензионных ключей. Ключ будет указан после или во время установки, поэтому не задан.
Вводим имя пользователя и название организации.
Пароль будущего локального администратора.
После создания можно аналогично просматривать её свойства и вносить изменения.
На вкладке Task Sequence описан весь процесс выполнения установки. Последовательность необходимо изменять под свои нужды.
Для примера я добавлю скрипт включающий возможность подключиться по 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"
Далее выбираем желаемое место в этом порядке и добавляем новый пункт.
На вкладке Options мы можем отключить выполнение этого шага и включить продолжение выполнения установки если на этом шаге возникнет ошибка. Там же добавляются дополнительные необходимые условия для выполнения этого шага.
Рекомендую более детально изучить возможности разных типов задач. После завершения редактирования последовательности можно приступить к созданию загрузочных образов.
Для создания образов выбираем второй пункт.
Обновление DeploymentShare необходимо выполнять после:
- обновления загрузочных драйверов (сетевых карт и дисковых накопителей);
- добавления компонентов в загрузочный образ;
- изменения параметров загрузочного образа;
- обновления версии Windows ADK;
- изменения Bootrstrap.ini;
- изменения файлов «экстра»-директорий.
Переходим в консоль WDS и в папку Boot Images добавляем созданный загрузочный образ. WDS скопирует этот образ в свой рабочий каталог.
Тестирование
Настраиваем на тестовом компьютере загрузку по сети. Сервер WDS определяется автоматически. По умолчанию, компьютер ожидает нажатия F12 для продолжения загрузки. Эта настройка меняется в свойствах сервера WDS на вкладке Boot.
Большинство настроек было определено в конфигурационных файлах, остается заполнить недостающие. Выбираем доступный Task Sequences.
Задаем имя компьютера.
Данная настройка позволяет сохранить профили пользователей. У нас чистая установка, поэтому оставим как есть.
Можно и восстановить откуда-либо.
Выбираем необходимый софт.
Дальнейшая установка производится в автоматическом режиме.
При включенном мониторинге за ходом процесса установки можно наблюдать через консоль.
В конечном итоге, затратив пару минут своего времени (не считая установку) на загрузку по сети и ввод оставшихся настроек, мы получаем готовую к работе отвечающую нашим требованиям операционную систему. Сложность конечного результата определяется заранее, поэтому смысла особого не имеет.
Явные плюсы автоматизации:
- Экономия своего времени. Во время установки можем заниматься интересными делами.
- Единообразие устанавливаемых систем.
- Меньше время ожидания, чем это делалось бы вручную.
- Возможность менять отдельные элементы при изменениях, а не пересобирать образ целиком.
Полная официальная документация MDT