В этой статье мы разберемся, как на базе Windows Server 2012 R2 установить и настроить связку Microsoft Deployment Toolkit 2013, Windows Assessment & Deployment Kit и роли WDS, и использовать этот набор для разворачивания образа Windows 10 на компьютеры клиентов по сети путем загрузки в режиме PXE (Preboot Execution Environment).
Нам понадобятся следующие компоненты:
- Windows Deployment Services – это роль Windows Server 2012, используемая для загрузки и разворачивания операционных систем по сети
- Microsoft Deployment Toolkit (MDT) 2013 Update 1 ( https://www.microsoft.com/en-us/download/details.aspx?id=48595) – набор инструментов для автоматизации развертывания операционных систем на рабочие станции и сервера
- Windows Assessment and Deployment Kit (Windows ADK) для Windows 10 (https://go.microsoft.com/fwlink/p/?LinkId=526740) – набор компонентов для настройки и развертывания Windows на новые компьютеры
- Установочный образ Windows 10 — в виде iso образа или установочного диска
Установка роли Windows Deployment Services
В первую очередь нужно на сервере под управлением Windows Server 2012 R2 установить роль Windows Deployment Services. Установку роли можно выполнить из консоли Server Manager. В списке ролей выберите Windows Deployment Services и нажмите Next.
В списке устанавливаемых компонентов роли WDS отметьте службы Deployment Server и Transport Server.
Запустите установку роли WDS (занимает пару минут).
Совет. Роль Windows Deployment Services можно установить с помощью всего одной команды PowerShell:
Install-WindowsFeature -Name WDS -IncludeManagementTools
Установка Microsoft Deployment Toolkit 2013
Установите Microsoft Deployment Toolkit (MDT) 2013 Update 1 со стандартными настройками, для чего достаточно скачать и запустить с правами администратора файл MicrosoftDeploymentToolkit2013_x64.
Установка Windows Assessment and Deployment Kit
Далее нужно установить Windows Assessment and Deployment Kit (Windows ADK) для Windows 10. Скачайте и запустите файл adksetup.exe.
Укажите каталог для установки (по умолчанию C:\Program Files (x86)\Windows Kits\10\).
В списке компонентов ADK для установки отметьте:
- Deployment tools –используется для настройки образа Windows и автоматизации развертывания образа
- Windows Preinstallation Environment (Windows PE) – среда WinPE — минимальная ОС, разработанная для подготовки компьютера к установке Windows или обслуживания
- User State Migration tool (USMT) – набор инструментов для миграции данных пользователей между системами
Запустите установке Windows ADK.
Теперь нам нужен дистрибутив Windows 10. В нашем примере это будет Windows 10 x64 Pro. Т.к. MDT не позволяет напрямую работать с iso файлами образа Windows, необходимо распаковать установочные файлы. Самый простой вариант – смонтировать файл с iso образом Windows 10 через File Explorer (Проводник) в отдельный виртуальный драйв (ПКМ по iso файлу-> Mount).
Настройка MDT 2013
Приступим к настройке MDT 2013. Запустим консоль Deployment Workbench, щелкнем ПКМ по Deployment Share и создадим новый каталог (New Deployment Share).
В окне мастера создания нового каталога распространения укажите путь к папке (C:\DeploymentShare в нашем случае).
Укажите сетевое имя каталога (мы оставили имя по умолчанию DeploymentShare$) и нажмите Next.
После окончания работы мастера перейдите в папку C:\DeploymentShare.
В этой папке хранятся образы ОС, драйвера, настройки, пакеты с приложениями и т.д. Папка является портабельной и может быть легко перенесена на другой MDT сервер.
Чтобы все сетевые клиенты (в том числе анонимные) могли обращаться к содержимому этой папке, в свойствах сетевой папки DeploymentShare$, нужно добавить группу Everyone с разрешением на чтение.
На следующем шаге нам нужно импортировать образ Windows 10. MDT поддерживает импорт образа операционной системы непосредственно с диска дистрибутива, wim файла или образа wds.
Разверните Deployment Shares -> MDT Deployment share. ПКМ по разделу Operating systems и в меню выберите Import Operating System.
Выберите пункт Full set of source files и укажите имя драйва, на который был смонтирован iso образ Windows 10.
Укажите имя каталога, в котором будет храниться импортируемый образ.
Мастер скопирует файлы дистрибутива Windows 10 в каталог C:\DeploymentShare\Operating Systems\Windows10Prox64, а в разделе Operating Systems появится новый запись, указывающая на образ Windows 10 Pro x64.
Создание задания установки MDT
Теперь нужно создать задание установки (Task Sequence), представляющее собой последовательность действий, необходимых для разворачивания Windows (это установка ОС, драйверов, приложений, конфигурация системы, обновлений, запуск различных скриптов настройки и т.п.).
Щелкните ПКМ по разделу Task Sequences и выберите New Task Sequence.
В качестве идентификатора задания (Task sequence ID) укажем DeployWin10x64, а имени (Task sequence name) — “Deploy Windows 10 x64”.
В выпадающем меню нужно выбрать один из существующих шаблонов заданий установки. В нашем случае это будет Standard Client Task Sequence.
Выберите ОС, которую нужно установить в рамках этого задания (Windows 10 Pro x64).
Затем можно указать ключ продукта, это может быть как retail, MAK или KMS ключ.
Далее можно задать пароль локального администратора на устанавливаемой системе.
Откройте свойства созданного задания и проверьте, что его запуск разрешён на любых платформах (This can run on any platforms).
На вкладке Task Sequence отображается последовательность шагов, определенных в шаблоне, которые нужно выполнить при разворачивании ОС на клиенте. Здесь можно добавить собственные шаги, либо оставить все по-умолчанию.
Далее нужно обновить каталок распространения MDT. Щелкните ПКМ по MDT Deployment Share и выберите Update Deployment Share. MDT сгенерирует загрузочные образы и файлы, нужные для установки ОС.
При первом запуске каталог C:\DeploymentShare\Boot пуст, поэтому нужно выбрать пункт Completely regenerate the boot image и дождаться генерации образов ОС.
В каталоге C:\DeploymentShare\Boot должны появится iso и wim образы Windows PE для x86 и x64 платформ. Эти образы могут быть использованы для загрузки физических или виртуальных машин при разворачивании образа. При разворачивании образа Windows по сети (PXE boot) с помощью Windows Deployment Services могут быть использованы wim файлы.
Настройка загрузочного образа в Windows Deployment Services
Следующий этап – настройка сервера WDS, который должен обслуживать запросы клиентов PXE. Откройте консоль Windows Deployment Services (Server Manager -> Tools -> Windows Deployment Services), разверните ветку Servers и в контекстном меню сервера выберите Configure Server.
Укажем, что это будет отдельный WDS сервер (Standalone Server), не зависимый от Active Directory.
Каталог установки оставим без изменений — C:\RemoteInstall.
В настройках клиента PXE нужно указать, что нужно отвечать на запросы всех клиентов — Respond to all clien computers (known and unknown).
Снимите галку– Add images to the server now.
Зеленый треугольник на имени WDS сервера означает, что он настроен и запущен.
Теперь нам нужно импортировать на WDS сервер загрузочный образ, который мы создали ранее с помощью MDT. Щелкните ПКМ по Boot Image –> Add boot image.
Перейдите в каталог C:\DeploymentShare\Boot и последовательно добавьте файлы LiteTouchPE_x86.wim и LiteTouchPE_x64.wim.
Последнее, что осталось выполнить – открыть свойства WDS сервера и перейти на вкладку Boot. Чтобы предотвратить случайную загрузку клиентов через PXE и автоматическую установку Windows, зададим обязательное использование клавиши F12 для использования PXE-загрузки. Для этого в секции PXE Boot Policy нужно выбрать опцию Require the user to press the F12 key to continue the PXE boot.
Здесь же укажите загрузочные образы для архитектур x86 и x64 (в том числе для архитектуры UEFI).
Все остальные настройки WDS сервера оставим по-умолчанию. Перезапустите службу WDS через консоль (All tasks ->Restart).
Тестирование установки Windows 10 по сети
Теперь мы готовы протестировать сетевую загрузку компьютера клиента с wim образа, расположенного на WDS сервере (PXE boot). В этом тесте это будет виртуальная машина VMWare. Запустите ВМ и в процессе загрузи несколько раз нажмите клавишу F12 для начала загрузки через PXE.
Машина подключится к WDS серверу и получит список доступных загрузочных образов Windows PE. В стандартном диалоге Boot Manager нужно быте выбрать ОС, которую нужно загрузить. В нашем случае это Lite Touch Windows PE (x86).
Система начнет загрузку по сети wim образа со средой WinPE и предложит начать установку Windows 10 с помощью мастера Microsoft Deployment Tool Wizard.
Нажмите на кнопку Run the Deployment Wizard to install a new Operating System для запуска пошагового мастера установки образа Windows 10 на компьютер клиента.
В нашем примере также понадобилось указать UNC путь к сетевой папке DeploymentShare$ на MDT сервере(\\10.1.24.170\DeploymentShare$) и имя+пароль пользователя для доступа к ней.
Осталось среди доступных заданий выбрать созданное ранее Deploy Windows 10 x64 и дождаться окончания сетевой установки образа Windows 10 на этот компьютер.
Итак, в этой статье мы показали, как воспользоваться функционалом MDT 2013 и WDS сервера для создания инфраструктуры, позволяющей в автоматическом режиме по сети развернуть образ Windows 10 на клиентах.
Делаем по инструкции и уже тонем. После получения адреса от dhcp клиент выдает no boot filename received и загружается с диска.
Попробуйте поместить WDS сервер и клиента в одну IP подсеть. C DHCP крме стандартных парамтеров (ip, шлюза, DNS) больше ничего ничего не отдаете?
Не очень понял для чего используется компонент Win ADK ибо кроме установки (по мануалу) к нему нигде не обращаются
Он добавляет нужные библиотеки и инструменты, использующиеся для генерации образов
Спасибо!
А будет статья по добавлению приложений?
Имеете в виду интеграция установки приложения в MDT?
Ок, добавлю эту тему в ближайшие планы.
Спасибо.
Ещё хотелось бы разобрать проблему с захватом образа в Windows 10 1709.
После установки обновлений или удаления стандартных приложений (News, people и т.д.) (Ещё не разобрался после чего именно). Sysprep завершается с ошибкой:
Expected image state is IMAGE_STATE_GENERALIZE_RESEAL_TO_OOBE, actual image state is IMAGE_STATE_COMPLETE, sysprep did not succeed. LTISysprep 22.12.2017 14:16:40 0 (0x0000)
FAILURE ( 6192 ): ERROR — Sysprep did not complete successfully, check C:\windows\system32\sysprep\panther\setupact.log for details LTISysprep 22.12.2017 14:16:40 0 (0x0000)
Event 41002 sent: FAILURE ( 6192 ): ERROR — Sysprep did not complete successfully, check C:\windows\system32\sysprep\panther\setupact.log for details LTISysprep 22.12.2017 14:16:40 0 (0x0000)
В логах:
C:\windows\system32\sysprep\panther\setupact.log
ругается на что то подобное:
2017-10-18 10:09:00, Error SYSPRP Package A278AB0D.MarchofEmpires_2.7.0.13_x86__h6adky7gbf63m was installed for a user, but not provisioned for all users. This package will not function properly in the sysprep image.
2017-10-18 10:09:00, Error SYSPRP Failed to remove apps for the current user: 0x80073cf2.
2017-10-18 10:09:00, Error SYSPRP Exit code of RemoveAllApps thread was 0x3cf2.
2017-10-18 10:09:00, Error SYSPRP ActionPlatform::LaunchModule: Failure occurred while executing ‘SysprepGeneralizeValidate’ from C:\Windows\System32\AppxSysprep.dll; dwRet = 0x3cf2
2017-10-18 10:09:00, Error SYSPRP SysprepSession::Validate: Error in validating actions from C:\Windows\System32\Sysprep\ActionFiles\Generalize.xml; dwRet = 0x3cf2
2017-10-18 10:09:00, Error SYSPRP RunPlatformActions:Failed while validating Sysprep session actions; dwRet = 0x3cf2
Судя по ошибке нужно снести Metro приложение A278AB0D.MarchofEmpires_2.7.0.13_x86__h6adky7gbf63m.
Get-AppxPackage -AllUser | Format-List -Property PackageFullName,PackageUserInformation.
Run Remove-AppxPackage -Package
Я бы удалил сразу все современные приложения (если они не нужны) 🙂
Проблема решилась установкой HideShell=YES и пропуском скрипта по удалению этих приложений на этапе создания эталонного образа.
Уже в другом tasksequnece применяем скрипт по удалению и всё ок.
Хотя в мню пуск всё равно остаётся куча мусора типо candy, minecraft и т.д. Пока работаю над этим чтобы их выпилить нафиг.
Хотелось бы гайд по миграции данных пользователей и подготовке дефалтового профиля средствами USMT. Сделаете? 🙂
Добрый день!
Эта статья уже вышла?
На части машин выдается следующее:
pxe-e53 no boot filename
Затем происходит загрузка с диска.
В логах сервера:
Загружен следующий клиент из PXE:
Аппаратный адрес: 10-78-D2-EE-8A-5D
IP: 192.168.22.155
Код устройства: {90B57751-AE4E-04B6-58C4-B6342306B664}
Архитектура клиента: 1
Предв.: false
Что интересно, аналогичный лог с другого компьютера, с которого работает загрузка, отличается только «Архитектура клиента: 3»
Клиенты получают адрес с DHCP? Воспроизводится ли проблема, если поместить клиента в тот же сегмент (VLAN). У вас добавлены обе версии загрузчика (x86 и x64)?
Возможно проблема с неправильной настройкой PXE клиента, в котором не задана архитектура. Можно включить автоматическое определение архитектуры на стороне сервера WDS:
WDSUTIL /Set-Server /ArchitectureDiscovery:Yes
Попробуйте добавить опцию 067 (Bootfile Name)
При попытке выполнить команду произошла ошибка.
Код ошибки: 0xC1040103
Описание ошибки: Указан недопустимый параметр (/ArchitectureDiscovery) для команды /set-server.
На DHCP сервере определил класс поставщика:
Затем для этого класса в политиках назначаю 67:
После чего загрузка идет, но приходится 4 раза f12 нажать.
Если не указываю 67 параметр:
загружает: boot\x86\wdsnbp.com
загружает: boot\x64\pxeboot.n12
загружает: boot\x64\bootmgr.exe
загружает: \Tmp\x86x64{7C04EB46-D78E-4206-811E-4CF8B4CF4CE9}.bcd
загружает: \boot\fonts\wgl4_boot.ttf
Далее идет выбор ОС и прочее.
Теперь ставлю 67 параметр boot\x86\wdsnbp.com
Загружает: boot\x86\wdsnbp.com
Загружает: boot\x86\pxeboot.com
Загружает: boot\x86\bootmgr.exe
Загружает: \boot\Fonts\wgl4_boot.ttf
Загружает: \boot\Fonts\segoen_slboot.ttf
Загружает: \boot\Fonts\segmono_boot.ttf
Вываливается ошибка на синем фоне.
Ставлю 67 параметр boot\x64\pxeboot.n12
Загружает: boot\x64\pxeboot.n12
Загружает: boot\x64\bootmgr.exe
Загружает: \boot\Fonts\wgl4_boot.ttf
Загружает: \boot\Fonts\segoen_slboot.ttf
Загружает: \boot\Fonts\segmono_boot.ttf
Вываливается ошибка на синем фоне.
Если еще актуально
Проблема в политиках DHCP сервера.
DHCP сервер должен различать типы клиентов и правильно отдавать нужный загрузчик *.efi
Действительно, в 2012 WDS этот параметр не поддерживается.
Попробуйте ключ HKLM\System\CurrentControlSet\Services\WDSServer\Providers\WDSPXE\Providers\BINLSVC
DisableArchDisc= 0
Но тут не уверен.
Т.е. при отсуствующем параметре 67 загрузка идет?
В реестре этот параметр стоит.
При отсутствии 67 загрузка идет на старых компьютерах. На новых, 16-17 год приобретения, не видит откуда грузиться, пишет нет файла для загрузки. Если 67 параметр ставить, то старые вываливаются с синей ошибкой, а новые загружаются.
Все карты отправляют PXEClient:Arch:00000, т.е. по архитектуре не отличаются. Вариант вижу по маку привязывать новые компы, и для них выдавать 67 параметр. Но это костыли, хотелось бы понять в чем проблема может быть.
the source directory specified does not contain an identifiable operating system
Какую ОС и в какую версию MDT импортируете? Насколько я помню, список поддерживаемых ОС ограничен. Например, Vista/Windows Server 2008 не поддерживаются в MDT 2013. Либо же в вашем диске образ ОС хранится в ESD формате (install.esd). Его нужно конфертировтаь в install.wim:
dism /export-image /SourceImageFile:c:\distr\install.esd /SourceIndex:4 /DestinationImageFile: c:\distr\install.wim /Compress:max /CheckIntegrity
Полезная инфа есть в статьях:
https://winitpro.ru/index.php/2014/10/30/kak-konvertirovat-install-esd-v-ustanovochnyj-iso-obraz/
https://winitpro.ru/index.php/2014/11/17/vosstanovlenie-sistemnyx-shriftov-windows-8/
Можно ли сделать так, чтобы путь к DeploymentShare задавался по умолчанию тот, который мне нужен? Довольно неудобно постоянно прописывать вручную.
Отвечаю сам себе: в Свойствах DeploymentShare надо зайти в редактирование bootstrap.ini и дописать в default:
Deployroot=\\адрес\DeploymentShare$
Можно пропустить этап ввода логина, пароля, домена, добавить туда же:
UserID:юзер-такойто
UserPassword=пароль юзера
UserDomain=домен сервака
После этого необходимо обновить папку DeploymentShare, это создаст два новых lite touch pe образа.
в WDS необходимо удалить старые и добавить новые, перезапустить сервер.
В посте я писал, что некоторые клиенты не видят WDS сервер. и в чем причина была не понятно.
Сегодня я выключил netbios на сервере с wds, и о чудо. Клиенты заработали корректно. В чем может быть дело? чем мешает netbios?
Нашел такой комментарий
При отключенном NetBIOS over TCP/IP загрузка PXEboot работает нормально. Не знал…
Собрал WDS сервер и сделал всё по этой статье. Взял машину с UEFI биосом, запустил установку из PXE.
Всё отлично разворачивалось. Убедившись, прервал установку, выключил компьютер. На следующий день пробую запустить установку снова — пишет PXE-E09:could not allocate I/O buffers. Якобы, не хватает системной памяти… Как победить?
Т.е. компьютер тот-же самый? Возможно какая-то специфическая ошибка прошивки BIOS/UEFI. Попробуйте обновить firmware не устройстве.
На Windows Server 2022(стоят актуальные обоновления, х64 сиситема). После установки MDT, захожу в Deployment Workbench , свойства, открывается окно с настройками, где есть вкладки:
General, Rules, Windows PE, Monitoring. Все вкладки открываются, кроме Windows PE.При переходе на эту вкладку оснастка выгружается, потому что не находит путь «С: \Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs».
У меня есть только путь до папки …\х86.
Можно-ли как-то это исправить?
P.S. По умолчанию выбирается х86 система.