Windows automated deployment kit

Содержание
  1. Download and install the Windows ADK
  2. Other ADK downloads
  3. Install the ADK
  4. Windows ADK tools for IT pros
  5. Установка Windows через Windows Deployment Services и Microsoft Deployment Toolkit
  6. Добавление роли Windows Deployment Services (WDS) на сервер
  7. Загрузка и установка на сервер необходимых компонентов
  8. Запуск и настройка WDS
  9. Запуск и настройка MDT
  10. Импорт приложений
  11. Импорт установочных образов
  12. Импорт драйверов
  13. Импорт пакетов
  14. Создание задач
  15. Тестирование
  16. Читают сейчас
  17. Редакторский дайджест
  18. Похожие публикации
  19. Системный таймер в Windows: большое изменение
  20. Полезные советы IT-администратору: развертывание различных ОС с помощью Windows Deployment Services
  21. WDS (Windows Deployment Services). Быстрое развертывание клиентских машин с сервера. Создание образа развертывания WIM
  22. Вопросы и ответы
  23. Как правильно разметить диск в precced?
  24. Как распределять входящие письма по ответственным Битрикс24?
  25. Почему иногда не вписываются буквы в строку pywinauto?
  26. Какой видеоплеер запускает видео по таймеру?
  27. Как использовать локальный gitlab-runner?
  28. Минуточку внимания
  29. Комментарии 13

Download and install the Windows ADK

The Windows Assessment and Deployment Kit (Windows ADK) has the tools you need to customize Windows images for large-scale deployment, and to test the quality and performance of your system, its added components, and the applications running on it. The Windows ADK includes:

The Windows Assessment Toolkit and the Windows Performance Toolkit to assess the quality and performance of systems or components.

Deployment tools such as WinPE, Sysprep, and other tools that you can use to customize and deploy Windows 10 images.

Starting with Windows 10, version 1809, Windows Preinstallation Environment (PE) is released separately from the Assessment and Deployment Kit (ADK). To add Windows PE to your ADK installation, download the Windows PE Addon and run the included installer after installing the ADK. This change enables post-RTM updates to tools in the ADK. After you run the installer, the WinPE files will be in the same location as they were in previous ADK installs.

A Windows ADK for Windows 10, version 20H2 will not be released. You can use the Windows ADK for Windows 10, version 2004 To deploy Windows 10, version 20H2.

Other ADK downloads

ADK version and download link Description
ADK for Windows 10 Insider Preview Windows Insiders can download preview versions of the ADK. See what’s new for Windows Insiders for Business.
ADK for Windows 10, version 1903 What’s new in ADK for Windows 10, version 1903.
You can use this version to deploy Windows 10, version 1909 as well.
Windows PE add-on for ADK, version 1903 Windows Preinstallation Environment (PE) for Windows 10, version 1903
ADK for Windows 10, version 1809 What’s new in ADK for Windows 10, version 1809
Windows PE add-on for ADK, version 1809 New as of Windows 10, version 1809, Windows Preinstallation Environment (PE) is avalable separately form the Assessment and Deployment Kit (ADK)
ADK for Windows 10, version 1803 What’s new in ADK for Windows 10, version 1803
ADK for Windows 10, version 1709 What’s new in ADK for Windows 10, version 1709.
For IoT Core for Windows 10, version 1709, also download the IoT Core Add-Ins v4.4.
ADK for Windows 10, version 1703 What’s new in ADK for Windows 10, version 1703.
For IoT Core for Windows 10, version 1703, also download the IoT Core Add-Ins v3.2.
ADK for Windows 10, version 1607 What’s new in ADK for Windows 10, version 1607.
For IoT Core for Windows 10, version 1607, also download the IoT Core Add-Ins v2.0 (14393_v1).
ADK for Windows 8.1 Use the ADK for Windows 10, version 2004
  • Use the Windows Performance Toolkit for Windows 8.1 that’s available in the Windows 8.1 SDK
  • Assessments are no longer available
Windows OEM HAL Extension Test Cert 2017 To use the Windows ADK to work with HAL Extensions, download and install the updated Windows OEM HAL Extension Test Cert 2017 (TEST ONLY) certificate. Learn more.

Install the ADK

Install the ADK based on what works best for your environment.

  • For computers that are connected to the internet, you can use any of the download links above.
  • For secure manufacturing environments, you can install the Windows ADK offline.
  • For automated installs, you can silently install the Windows ADK.

Windows ADK tools for IT pros

Windows ADK contains core assessment and deployment tools that IT Pros can use to deploy Windows 10 company-wide, including the User State Migration Tool (USMT) and Volume Activation Management Tool (VAMT).

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

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

Для работы MDT необходимо:

Добавление роли 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

Запуск и настройка 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.

На вкладке 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читают сейчас

Редакторский дайджест

Присылаем лучшие статьи раз в месяц

Скоро на этот адрес придет письмо. Подтвердите подписку, если всё в силе.

Похожие публикации

Системный таймер в Windows: большое изменение

Полезные советы IT-администратору: развертывание различных ОС с помощью Windows Deployment Services

WDS (Windows Deployment Services). Быстрое развертывание клиентских машин с сервера. Создание образа развертывания WIM

Вопросы и ответы

Как правильно разметить диск в precced?

Как распределять входящие письма по ответственным Битрикс24?

Почему иногда не вписываются буквы в строку pywinauto?

Какой видеоплеер запускает видео по таймеру?

Как использовать локальный gitlab-runner?

AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Минуточку внимания

Комментарии 13

Веб-сервис необязателен. Достаточно vbs-скрипта. Если добавить в CustomSettings.ini

MDT вызовет из скрипта GetCompName.vbs функцию GetComputerName() и присвоит переменной OSDComputerName, которая и определяет будущее имя компьютера, результат этой функции (символы «#» вокруг имени функции обязательны).
В самом скрипте нам доступны все уже определённые переменные. Например, название домена, указанное в CustomSettings.ini из статьи, доступно как

Почитайте в документации про параметры Priority, Properties раздела [Settings] файла CustomSettings.ini, параметр Subsection. Там достаточно сложную логику можно реализовать. Можно добавить несколько секций в этот файл с разными значениями одних и тех же параметров и выбирать нужную секцию в зависимости от значений других параметров или результатов вызова скриптов. Можно добавить свои окна в Deploymen Wizard, не говоря уже о своих Task Sequences и их шаблонов.
И это не костыли. MDT просто так устроен. Он весь состоит из скриптов xml- и ini-файлов.

Мы использовали единую базу данных (CMDB) с именами и MAC адресами всех компьютеров организации. С помощью этого модуля был создан скрипт, который по REST api подключается к базе CMDB, берёт список компьютеров с их MAC адресами и заливает их в базу MDT. Скрипт приложу, вдруг кому пригодится (он уродливый и сырой, выкладываю как есть). Он работает через truncate mdt базы — кривое решение и если у вас 1000000 компьютеров, то не сгодится, но с 2000 справляется отлично и быстро.

$Url = «https://otrs.domain.ru/otrs/nph-genericinterface.pl/Webservice/CMDBData/Session»
$Body = @<"UserLogin"="otrs";"Password"="Password">
$SessionID = ((Invoke-WebRequest -Method Post -Uri $url -Body ($Body|ConvertTo-Json) -ContentType «application/json»).content | ConvertFrom-Json).SessionID

$truncate = «truncate table settings
truncate table computeridentity
GO»

Invoke-SQLcmd -ServerInstance ‘windeploy\SQLEXPRESS’ -query $truncate -Database MDT

Connect-MDTDatabase -sqlServer windeploy.domain.ru -instance SQLEXPRESS -database MDT

$hash = [ordered]@ <
ConfigItem = [ordered]@ <
;
Number=»*»

>
>
$BodySearch = $hash | ConvertTo-Json -Depth 99

$Response = Invoke-WebRequest -Method POST -Uri «https://otrs.domain.ru/otrs/nph-genericinterface.pl/Webservice/CMDBData/CISearch?SessionID=$SessionID» -Body $BodySearch -ContentType «application/json; charset=UTF-8» | ConvertFrom-Json

foreach ($item in $ConfigItemIDs)
<
$uri = $UrlOTRS+»CI/»+$item+»?SessionID=»+$sessionid;
$jsonresp = Invoke-WebRequest -Method GET $uri -ContentType «application/json; charset=UTF-8» | ConvertFrom-Json
if (($jsonresp.ConfigItem.CIXMLData.MAC -match «[a-zA-Z_0-9]») -and (($jsonresp.ConfigItem.deplstate -like «Operation») -or ($jsonresp.ConfigItem.deplstate -like «Prep») -or ($jsonresp.ConfigItem.deplstate -like «Reserve») -or ($jsonresp.ConfigItem.deplstate -like «Relocation»)) )
<
#write-host $jsonresp.ConfigItem.name -ForegroundColor Green
#Write-Host $jsonresp.ConfigItem.CIXMLData.MAC
#Write-Host $jsonresp.ConfigItem.deplstate

For ($i=1; $i -le $machines.count; $i++)
<
$machines[$i-1].ConfigItem.CIXMLData.MAC=$machines[$i-1].ConfigItem.CIXMLData.MAC.ToUpper() -replace ‘..(?!$)’, ‘$&:’
$macvalid=$TRUE
$temp = $machines[$i-1].ConfigItem.CIXMLData.MAC.Split(«:»)
if (($temp.count -ne 6) -or ($machines[$i-1].ConfigItem.CIXMLData.MAC.length -ne 17))
< $macvalid = $FALSE
>

$namevalid=$TRUE
if ($machines[$i-1].ConfigItem.name.length -gt 15)
< $namevalid=$FALSE
>

if ($namevalid -and $macvalid)
<
$validrecords=$validrecords+1
$machineid=Get-MDTComputer -macAddress $machines[$i-1].ConfigItem.CIXMLData.MAC
if ($machineid.id -gt 0)
<
Remove-MDTComputer $machineid.id
>
$OSDPcName = «PC-» + $machines[$i-1].ConfigItem.number
New-MDTComputer -macAddress $machines[$i-1].ConfigItem.CIXMLData.MAC -description $OSDPcName -settings @ <
OSInstall=’YES’;
OSDComputerName=$OSDPcName;
>
$machineid=Get-MDTComputer -macAddress $machines[$i-1].ConfigItem.CIXMLData.MAC
Set-MDTComputerRole $machineid.id «StandardPC»
>
else
< #log the invalid record
$invalidrecords=$invalidrecords+1
$text = «Invalid Record : «+$i+» «+$machines[$i-1].mac+» «+$machines[$i-1].name
$text >> $logfile
>
>

Clear-Variable out
$out =@()

$hash = [ordered]@ <
ConfigItem = [ordered]@ <
;
Number=»*»

>
>
$BodySearch = $hash | ConvertTo-Json -Depth 99

Читайте также:  Настройка atom для python windows
Оцените статью