Время на прочтение
36 мин
Количество просмотров 93K
Сисадмину или мастеру сервисного центра, да и просто в хозяйстве на всякий случай помогает в работе загрузочная флешка с набором полезных программ, и в интернете можно найти полно готовых решений с «кучей» софта на все случаи в жизни. Но каждый, кто пользовался чужими готовыми вариантами LiveCD, рано или поздно задумывался о том, что по факту используется лишь малая часть приложений. Весь же остальной ненужный груз софта, который порой может составлять более 98% всего набора LiveCD, лишь мешает работать. Почему? Потому что LiveCD загружается прямиком в оперативную память, и чем больше объем LiveCD, тем больше ожидания загрузки, а если ещё и попался древний компьютер, то LiveCD может и вовсе не загрузится от нехватки памяти. И что же делать? Сделать свой собственный LiveCD! В этой статье я расскажу то, чего вы не найдете даже в гугле.
Начиная читать эту статью, можно подумать, что в интернете есть полно инструкций как это сделать, но не всё так просто. В этих инструкциях либо чего-то не хватает (как будто намеренно), либо наоборот наворочено очень много ненужного и непонятно что из этого можно было бы убрать, либо инструкции устарели и не работают на последних версиях Windows PE. Но самое главное, с чем я регулярно сталкиваюсь, так это с тем, что в инструкциях написано всё на столько кратко, что в них не всегда разберется даже продвинутый пользователь, и в редких случаях даже я, специалист с опытом, не с первого раза понимаю, что имел в виду автор. Я понимаю, что это сделано, чтобы отсеять всех, кроме просвещенных, но тогда зачем вообще писать такие инструкции, где ничего непонятно, из-за которых приходится перечитать лишние 100 статей, потратить лишние 2 недели на проверку в практике, ради того, чтобы выяснить какую-то мелочь, которую могли написать в трех предложениях. Так что в какой-то степени эта инструкция на зло всем тем, кто пожадничал и не написал несколько лишних строк.
Даже если вы найдёте какую-то инструкцию по этой теме, то не факт, что она будет подробна и понятна, особенно учитывая, как быстро всё меняется и устаревает.
Небольшой спойлер, загуглите запрос IConflictInterrupt и вы не найдете в интернете ни одной статьи или инструкции, а это один из ключевых моментов в работе функционала окна процесса копирования/перемещения/удаления файлов, без которой не так удобно использовать Windows PE. Что делает эту статью уникальной и крайне полезной.
В этой статье я ОЧЕНЬ ПОДРОБНО расскажу, как собрать Windows PE с минимальным набором самых нужных функций без лишнего хлама. Я намеренно написал даже некоторые почти примитивные шаги, дабы любой новичок мог быстро освоиться. Так что не кидайте тапками за занудность (:
Предисловие
Я начал этот путь ещё со времен Windows 98, когда уже в те времена иногда требовалось выгрузить данные с ПК, у которого не загружалась ОС. Флешки в тот период уже были, хоть и не были распространены, т.к. были очень дорогие. Загрузить с них минимальную Windows 98 было не так просто, потому что Windows 98 не умела загружаться с внешних накопителей, и приходилось самому писать драйвер с указанием серийного номера флешки, чтобы именно эта флешка воспринималась операционной системой как жёсткий диск. Даже несмотря на это, ОС не загружалась, если объем оперативной памяти превышал 512Мб.
Потом, конечно, вышла Windows 2000/XP, и ситуация в корне изменилась, появлялись готовые решения вроде Hiren (DOS+Windows XP), которые уже на тот момент работали очень медленно. Например, у Hiren виртуальная img FDD весила аш ~41Мб и могла загружаться по более 30-40 минут на особо медленных ПК с USB1.0.
Уже в те времена готовые решения работали не так как хотелось и имели в арсенале полно ненужных приложений. Тогда-то я и начал для своих личных нужд активно собирать свои собственные LiveCD на DOS и Windows. Когда мой img FDD весил всего около 2Мб вместо 41Мб у Hiren, и вмещал всё необходимое (MHDD, Victoria, Volkov Commander и немного мелочи), с годами туда конечно добавились DiscGenius, HWinfo и некоторые другие, но суть остаётся прежней, в арсенале только самое нужное, лёгкое и быстро загружающееся.
Времена идут и Microsoft достаточно часто выпускает новые версии Windows 10, а теперь ещё и Windows 11. После почти каждого выхода новой версии ОС приходится создавать новый образ, т.к. только он имеет нативную поддержку нового железа. Например, встречаются современные ноутбуки, у которых даже сенсорная панель не работает на старых версиях Windows 10 PE, не говоря уже о сенсорных экранах.
Я расскажу, как сделать образ на основе Windows 10 1507 x32 и Windows 10 21H2 x64. Почему такой разброс в версиях? Потому что версия x32 нужна как правило для старых устройств с минимальными ресурсами, а версия Windows 10 1507 является самой лёгкой по объему и запустится везде, где только можно, особенно на планшетах с ЦП Intel, у которых нет поддержки x64. Почему именно версия 1507 x32, а не 21H2 x32? Потому что опыт показывает что устройства, как правило планшеты и трансформеры, у которых нет поддержки x64, вышли во время Windows 8 (2012-2015год), и некоторые из этих устройств не способны загрузить последние версии Windows 10 21H2 x32 (как минимум на стоковых версиях UEFI), потому что предназначались для Windows 8, но они все без исключения (по моему опыту) отлично загружают Windows 10 1507 x32. Версия Windows 10 21H2 x64 нужна для современных устройств и тут уже НУЖНО выбирать только самую последнюю версию Windows PE. Перед написанием статьи я применил свою же инструкцию к Windows 11 PE (22000.XXX) и всё замечательно работает, так что в дальнейших шагах вместо Windows 10 21H2 x64 можете смело использовать Windows 11 (22000.XXX).
Итак, начнём.
I. Подготовительный этап
1. Windows ADK
Для начала нам понадобится скачать и установить комплект средств для развертывания и оценки для Windows ADK.
Во время установки при выборе компонентов достаточно выбрать лишь средства развертывания (Система обслуживания образов и развертывания и управления или (DISM)).
Примечание: у Microsoft имеется надстройка Windows PE для Windows ADK, где имеются дополнительные компоненты для интеграции в Windows PE, но нам эти компоненты не понадобятся, однако, как их установить я тоже ниже распишу, так что если интересно, то можете скачать и дополнительно установить надстройку Windows PE для Windows ADK. Скачать её можно на той же странице что указана выше.
2. Дерево каталогов
Необходимо создать каталоги, в которой будут проходить все работы. У каждого свои предпочтения по используемому диску D, E, F и т.д., так что я буду на примере диска C, а там уже делайте как вам удобно. Нам нужны будут следующие каталоги, но дабы не утруждать себя их созданием вручную, введите следующие команды в командную строку, запущенную от имени администратора:
mkdir "C:\BuildPE\AddFiles\x32\Program Files"
mkdir "C:\BuildPE\AddFiles\x32\Windows\System32"
mkdir "C:\BuildPE\AddFiles\x64\Program Files"
mkdir "C:\BuildPE\AddFiles\x64\Windows\System32"
mkdir "C:\BuildPE\COMPLETE\32"
mkdir "C:\BuildPE\COMPLETE\64"
mkdir "C:\BuildPE\ISO"
mkdir "C:\BuildPE\Mount"
mkdir "C:\BuildPE\originalWIM\x32"
mkdir "C:\BuildPE\originalWIM\x64"
mkdir "C:\BuildPE\util"
На выходе у вас будет готово дерево каталогов для дальнейших шагов.
3. Свой софт
Для каждого набор приложений индивидуален, я же буду расписывать свой вариант как пример, а вы можете его как пополнить, так и убавить. Windows PE x64 имеет поддержку ТОЛЬКО x64 приложений, и запустить x32 она не сможет без добавления дополнительных файлов для их поддержки, но раз уж мы делаем легкий образ, то поддержку x32 мы обеспечивать не будем, а это значит, что потребуется скачать только x64 приложения для x64 образа, и x32 приложения только для x32 образа. Я не буду оглашать весь список своих приложений, если вы понимаете о чем я :), но вот базовая часть:
У ниже указанных программ есть как x64, так и x32 версии, нам нужны обе:
- 7-Zip
- Autoruns
- CLaunch
- Explorer++ (Языковые пакеты можете найти на странице релизов GitHub нужен лишь .dll файл рядом с .exe файлом программы)
- HWiNFO
- Notepad++
- ProcessExplorer
- produkey
- WinXShell
Эксклюзивно для x32:
- ExplorerXP
- Victoria
Вы можете обратить внимание, что в списке присутствует CLaunch как альтернатива меню Пуск, и WinXShell как альтернатива всей графической оболочке explorer, в которой есть своё меню Пуск. Так зачем же два меню пуск? Дело в том, что наличие WinXShell в образе — это просто запас, на случай если остро необходима панель задач в то время, когда открыто множество окон, в которых можно потеряться, не имея панели задач. При этом если используется лишь одно окно, например для диагностики жесткого диска через Victoria, или для определения конфигурации ПК через HWiNFO, то достаточно одного окна без необходимости включать графический интерфейс. К тому же если на компе поврежденный жесткий диск, то лучше, чтобы было включено как можно меньше программ, которые обращаются к жесткому диску, а WinXShell как минимум строит дерево каталогов всех накопителей, что уже плохо в таком сценарии.
Почти все те программы что я выбрал (за исключением, например, Victoria и ExplorerXP), имеют как x32, так и x64 версии, но самое главное, что они не требовательны к наличию NetFX, который достаточно тяжелый. Если же ваш софт требует NetFX или какой-либо другой компонент, то придётся всё-таки его интегрировать, от чего образ значительно вырастет в объеме, но если это нужно, то почему бы и нет, главное, что не бесполезным софтом, а тем, что действительно нужно.
4. Подготовка софта
Не все вышеуказанные программы имеют portable версии, ваша задача получить каталог с программой — это можно сделать распаковкой установочного файла, как в случае с 7-Zip (через 7-Zip открыть дистрибутив 7-Zip, чтобы извлечь 7-Zip), или инсталировать программу на свой ПК, а потом скопировать целиком каталог с программой в отдельный каталог для дальнейшего копирования в образ:
Программы x32 для Windows 10 1507 x32 перемещаем в C:\BuildPE\AddFiles\x32\Program Files
Программы x64 для Windows 10 21H2 x64 перемещаем в C:\BuildPE\AddFiles\x64\Program Files
Немного подсказок:
WinXShell — в этой программе я удаляю китайский язык (файлы WinXShell.zh-CN.jcfg и WinXShell.zh-CN.lua) и переименовываю WinXShell_x86.exe в WinXShell.exe, аналогично и с x64, а также удаляю файл wxsStub32.dll для версии x64, а для x32 удаляю wxsStub.dll.
CLaunch — отличная альтернатива меню Пуск для ОС, у которой нет ничего кроме CMD, и дабы эта альтернатива работала как надо, то необходимо присвоить ей горячую клавишу для вызова (в моём случае Win+Z, т.к. просто Win будет использоваться для WinXShell). Настроить CLaunch можно и на своей ОС, а потом перекинуть файл с настройками в Windows PE для дальнейшей ДОнастройки, но, чтобы вас лишний раз не утруждать, и как минимум дать стартовый вариант настроек этой программы, я подготовил готовый комплект файлов, но о нём чуть ниже.
Получив набор каталогов с программами очень важно очистить их от лишнего (для достижения малого объема образа на выходе), поэтому можно смело удалять деинсталляционные файлы, лишние языки, скины, плагины и всё то, что 100% не понадобится в работе. Некоторые из этих программ требуют настройки, но об этом чуть позже. Желательно пока их даже не запускать дабы внутри программ не создавались лишние файлы настроек и т.д.
В моём образе Explorer++ хранится прямо в папке System32:
C:\BuildPE\AddFiles\x64\Windows\System32\Explorer++.exe
C:\BuildPE\AddFiles\x64\Windows\System32\Explorer++RU.dll
Советую сохранить Explorer++ в том же месте, т.к. его удобно вызывать из командной строки, а также мои настройки, которые вы встретите в следующих пунктах рассчитаны на то, что он будет находится именно в System32. Когда освоитесь, можете сменить ему местоположение изменив параметры в реестре, CLaunch и ярлык для WinXShell.
5. Скачать инструменты и оригинальный дистрибутив ОС
Оригинальное средство Microsoft для скачивания образа Windows — MediaCreationTool, не умеет скачивать старые версии Windows, и качает лишь последнюю поддерживаемую Microsoft, нам такая и нужна, но нам нужна ещё и самая первая версия Windows 10 1507, которую без труда можно скачать с торрентов с помощью удобного средства, которое уже обсуждалось здесь на хабре, или сразу на GitHub. Качаем с помощью него Windows 10 21H2 x64 и Windows 10 1507 x32 — нам нужны ISO файлы, а не запись на DVD или флешку.
Для работы нам также потребуются следующие программы:
- 7-Zip.
- Блокнот или любой другой текстовый редактор, в моём случае Notepad++.
- Редактор ISO файлов, в моём случае UltraISO.
- offlinereg необязателен, но желателен
Архив с программой offlinereg можно распаковать в C:\BuildPE\util
5. Подготовка WIM файлов
Чтобы сделать свой вариант Widnows PE, нам нужен оригинальный образ, который можно взять из скачанных ISO дистрибутивов.
Через 7-Zip или проводник откройте скачанные два ISO файла (Windows 10 1507 x32 и Windows 10 21H2 x64), откройте папку sources и извлеките из него файл boot.wim:
Из образа Windows 10 1507 x32 в папку C:\BuildPE\originalWIM\x32
Из образа Windows 10 21H2 x64 в папку C:\BuildPE\originalWIM\x64
6. Подготовка файлов ОС
Оригинальная Windows PE не имеет очень важных файлов, без которых не работает диалоговое окно копирования файлов, не работает Drag&Drop и многие другие функции, включая даже те программы, что мы скачали ранее, они не запустятся без некоторых файлов ОС. Наша задача дополнить ОС нужными файлами. Через 7-Zip откройте скачанные два ISO файла (Windows 10 1507 x32 и Windows 10 21H2 x64), откройте папку sources и прямо в архиваторе откройте файл install.wim или install.esd — формат неважен. Форматы .wim или .esd встречается в разных образах, в одном может быть .wim, в другом .esd, но сути не меняет — это просто архив с ОС.
Внутри архива install как правило должно быть несколько папок с номерами — это разные редакции ОС (Home, Single Language, Pro и т.д.), в каждой редакции имеется полный набор файлов ОС с незначительными отличиями в наборе функционала. Не важно какую именно редакцию вы откроете, потому что набор нужных нам файлов есть в каждом из них.
В архиве переходим в папку install.esd\1\Windows\System32\ из которого нужно выгрузить только определенные файлы.
Из образа Windows 10 1507 x32 извлекаем следующие файлы в папку C:\BuildPE\AddFiles\x32\Windows\System32:
en-US\shellstyle.dll.mui
ru-RU\explorerframe.dll.mui
ru-RU\ole32.dll.mui
ru-RU\oledlg.dll.mui
ru-RU\shell32.dll.mui
ru-RU\taskkill.exe.mui
ru-RU\twinapi.appcore.dll.mui
ru-RU\twinapi.dll.mui
ru-RU\twinui.appcore.dll.mui
ru-RU\twinui.dll.mui
actxprxy.dll
chartv.dll
d3d11.dll
DataExchange.dll
dcomp.dll
ddraw.dll
DXCore.dll (этого файла нет в версии 1507, но его можно взять из свежих версий Windows 10, например 21H2)
dxgi.dll
ExplorerFrame.dll
glu32.dll
ksuser.dll
oledlg.dll
opengl32.dll
pdh.dll
pdhui.dll
shellstyle.dll
shfolder.dll
taskkill.exe
thumbcache.dll
timeout.exe
twinapi.appcore.dll
twinapi.dll
twinui.appcore.dll
twinui.dll
Из образа Windows 10 21H2 x64 извлекаем следующие файлы в папку C:\BuildPE\AddFiles\x64\Windows\System32:
en-US\shellstyle.dll.mui
ru-RU\explorerframe.dll.mui
ru-RU\ole32.dll.mui
ru-RU\oledlg.dll.mui
ru-RU\shell32.dll.mui
ru-RU\taskkill.exe.mui
ru-RU\twinapi.appcore.dll.mui
ru-RU\twinapi.dll.mui
ru-RU\twinui.appcore.dll.mui
ru-RU\twinui.dll.mui
actxprxy.dll
chartv.dll
d3d11.dll
DataExchange.dll
dcomp.dll
dxgi.dll
ExplorerFrame.dll
glu32.dll
ksuser.dll
oledlg.dll
OneCoreUAPCommonProxyStub.dll
opengl32.dll
pdh.dll
pdhui.dll
shellstyle.dll
shfolder.dll
taskkill.exe
thumbcache.dll
timeout.exe
twinapi.appcore.dll
twinapi.dll
twinui.appcore.dll
twinui.dll
7. Подготовка ISO
В виртуальной машине мы будем тестировать наши образы Windows PE, но чтобы запустить виртуальную машину, нужно подключить к ней ISO файл со своей Windows PE. Физически невозможно с первого раза создать идеальную Windows PE, т.к. не будут готовы ни ярлыки программам, ни настройки программ, которые делаются после первого запуска Windows PE, потом извлекаются и вносятся во вторую версию, которая уже, может быть, релизной при идеальных обстоятельствах. Каждый раз редактировать тяжелый ISO образ с полноценной ОС — это отнимает больше времени, проще сделать отдельные ISO файлы для дальнейшего неоднократного редактирования, в которых не будет дистрибутива ОС. Через UltraISO открываем скачанные ISO файлы Windows 10 1507 x32 и Windows 10 21H2 x64 и полностью очищаем папку sources. В будущем мы добавим в неё уже отредактированный файл boot.wim. А пока что очищенные ISO файлы сохраняем в папку C:\BuildPE\ISO с именами, например, MyPE1507x32.iso и MyPE21H2x64.iso.
8. Подготовка файла реестра
Некоторые извлеченные файлы из оригинальной ОС не будут работать без определённых ключей в реестре, так что эти файлы бесполезны пока не будут зарегистрированы в реестре и не только (нужно ещё прописать некоторые CLSID и Interface).
Качаем мой набор файлов с github и помещаем содержимое архива в C:\BuildPE\AddFiles\, чтобы каталоги x32 и x64 слились с теми, что были в архиве.
В этом же наборе будут настроенные CLaunch (о чем я писал выше), Explorer++, startnet.cmd, а также пара батников для удобства.
В обоих вариантах (x64 и x32) у нас следующий набор файлов:
Файлы настроек CLaunch:
Program Files\CLaunch\Data\СИСТЕМА\Classic.csd
Program Files\CLaunch\Data\СИСТЕМА\CLaunch.ini
Program Files\CLaunch\Data\СИСТЕМА\ClIcons.bin
Program Files\CLaunch\Data\СИСТЕМА\Design.ini
Ярлыки программ для меню пуск WinXShell:
ProgramData\Microsoft\Windows\Start Menu\7zFM.lnk
ProgramData\Microsoft\Windows\Start Menu\Autoruns.lnk
ProgramData\Microsoft\Windows\Start Menu\Explorer++.lnk
ProgramData\Microsoft\Windows\Start Menu\HWiNFO32.lnk
ProgramData\Microsoft\Windows\Start Menu\procexp.lnk
ProgramData\Microsoft\Windows\Start Menu\ProduKey.lnk
ProgramData\Microsoft\Windows\Start Menu\Programs\cmd.lnk
ProgramData\Microsoft\Windows\Start Menu\Programs\MdSched.lnk
ProgramData\Microsoft\Windows\Start Menu\Programs\notepad.lnk
ProgramData\Microsoft\Windows\Start Menu\Programs\regedit.lnk
ProgramData\Microsoft\Windows\Start Menu\Programs\taskmgr.lnk
Ярлыки программ для меню пуск WinXShell эксклюзивно для x32, т.к. этих программ нет в x64 версии:
ProgramData\Microsoft\Windows\Start Menu\Victoria.lnk
ProgramData\Microsoft\Windows\Start Menu\ExplorerXP.lnk
Файлы System32:
Windows\System32\config.xml — файл настроек Explorer++
Windows\System32\spectraconfig.reg — файл реестра, который настроит ОС и который активирует работу диалоговых окон прогресса копирования и не только
Windows\System32\startnet.cmd — файл, который Windows PE запустит сразу после запуска, этот файл применит файл реестра, а также запустит CLaunch для удобного запуска своих приложений
Windows\System32\UI.bat — удобный запуск WinXShell через командную строку при необходимости
По поводу файла startnet.cmd — он уже настроен так, чтобы при запуске показать основные характеристики железа, на котором запущена Windows PE, для стартового понимания за каким железом приходится работать, без необходимости включать HWiNFO. Вы можете обратить внимание что в startnet.cmd какие-то кракозябры, а не кириллица. Дело в том, что если вы хотите, чтобы командная строка показывала вам кириллицу, то нужно перед редактированием этого файла сменить кодировку на OEM 866 (в Notepad++ это: Кодировки > Кириллица > OEM 866), и только после этого набирать текст русскими буквами, в противном случае, не сменив кодировку и написав на кириллице, в cmd вы увидите кракозябры.
Что касаемо файла spectraconfig.reg — он тут ключевой, без него не будут работать Drag&Drop и диалоговые окна проводника. Из-за его длины, я не стал писать его содержимое в теле статьи, к тому же две версии этого файла (x64 и x32), а вывел его на отдельный ресурс, но объяснить его строение вам всё-таки нужно. Для тех, кому интересно, информация ниже в спойлере:
Путеводитель по spectraconfig.reg
Начну с конца файла:
Внутри комментария «Каталог по умолчанию для пользователя СИСТЕМА X:\Users\Default» имеются ключи реестра для переназначения папок пользователя по умолчанию. В Windows PE используется пользователь СИСТЕМА, который хранится в каталоге пользователя Windows\System32\config\systemprofile, где должен быть каталог Desktop и остальные (которых нет), и без этих каталогов программы выдают ошибки, пытаясь обратиться к несуществующим каталогам, например, к Desktop, чтобы отобразить его в дереве каталогов. Поэтому я сменил путь к пользовательским папкам с %userprofile%\Desktop (коим является фактический путь X:\Windows\System32\config\systemprofile\Desktop) на X:\Users\Default\Desktop, и по образу и подобию остальные папки пользователя.
Внутри комментария «Твики для удобства» и так всё понятно, т.к. я прокомментировал их в .reg файле. Но как пример, пункт «Отобразить значок „Этот компьютер“ на рабочем столе» очень полезен для WinXShell, чтобы при его включении значок «Этот компьютер» был на своём месте.
Внутри комментария «Ассоциация с 7z» я добавил 7-Zip в качестве приложения по умолчанию для всех типов архивов, которые поддерживает 7-Zip.
Внутри комментария «Notepad++» всё аналогично, как и в 7-Zip. В x32 версию PE я не интегрировал Notepad++ и там нет ассоциации с Notepad++.
Комментарий «Explorer++ проводник по умолчанию» говорит сам за себя).
Внутри комментария «Drag&Drop и окна проводника» я добавил поддержку тем самых полезных функций, без которых Windows PE использовать очень неудобно. Подробнее о них в спойлере ниже.
Я прекрасно понимаю, что статья устареет и для новых версий Windows 10/11 она может быть неактуальной, поэтому для тех, кто хочет понять суть того, как включить Drag&Drop и диалоговые окна проводника, я расскажу по подробней в спойлере:
Как включить Drag&Drop и диалоговые окна проводника
Есть определённые диалоговые окна, например окно процесса копирования/перемещения/удаления файлов. Я постараюсь примитивным языком объяснить, как это работает. Что есть это окно? Это не часть приложения explorer.exe, это какое-то окно, которое хранится в каком-то .dll файла, но даже если вы этот .dll файл скопируете в свою Windows PE, то ОС не будет знать, что с ним делать, почему? Потому что в этом файле есть десятки, а то и сотни, если не тысячи разных окон для разных целей. Нужно дать понять Windows PE что имеется в этом файле. Это делается в 3 этапа:
- Устанавливаем на локальный компьютер или виртуальную машину самую свежую версию ОС Windows 10, открываем реестр и для удобства делаем в файлы .reg экспорт двух веток:
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\
На выходе будет два файла .reg которые можно открыть через Notepad++ и выполнять поиск нужных ключей. - Находясь в реестре или в Notepad++ (я использую Notepad++ потому что через него удобно копировать ветку, и нет необходимости экспортировать в файл, потом открывать его и копировать…), поочередно запускаем поиск нужных нам Interface (если вы работаете через Notepad++ то вам нужен тот .reg файл который вы экспортировали из ветки HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\):
IInterruptedOperationHandler
IFileOperationProgressSink
IOperationsProgressDialog
IOperationStatusTile
IOperationStatusService
IOperationStatusSink
IOperationInterrupt
IObjectWithCachedState
IConflictInterruptИ находим следующие ветки с их содержимым:
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{036B4FC7-6A11-4C07-8046-22D268C37721}]
@="IInterruptedOperationHandler"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{036B4FC7-6A11-4C07-8046-22D268C37721}\ProxyStubClsid32]
@="{95E15D0A-66E6-93D9-C53C-76E6219D3341}"[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{04B0F1A7-9490-44BC-96E1-4296A31252E2}]
@="IFileOperationProgressSink"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{04B0F1A7-9490-44BC-96E1-4296A31252E2}\ProxyStubClsid32]
@="{95E15D0A-66E6-93D9-C53C-76E6219D3341}"[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{0C9FB851-E5C9-43EB-A370-F0677B13874C}]
@="IOperationsProgressDialog"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{0C9FB851-E5C9-43EB-A370-F0677B13874C}\ProxyStubClsid32]
@="{95E15D0A-66E6-93D9-C53C-76E6219D3341}"[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{4AE7498C-E1C0-475F-8573-41C26127C5D8}]
@="IOperationStatusTile"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{4AE7498C-E1C0-475F-8573-41C26127C5D8}\ProxyStubClsid32]
@="{95E15D0A-66E6-93D9-C53C-76E6219D3341}"[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{6D5174EC-F425-4CD9-8643-CF36042987F1}]
@="IOperationStatusService"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{6D5174EC-F425-4CD9-8643-CF36042987F1}\ProxyStubClsid32]
@="{95E15D0A-66E6-93D9-C53C-76E6219D3341}"[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{9BE5F0C8-774A-4070-9C9E-0627765E6C61}]
@="IOperationStatusSink"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{9BE5F0C8-774A-4070-9C9E-0627765E6C61}\ProxyStubClsid32]
@="{95E15D0A-66E6-93D9-C53C-76E6219D3341}"[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{6FAF1156-8855-47B5-BDC8-4555D13C095F}]
@="IConflictInterrupt"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{6FAF1156-8855-47B5-BDC8-4555D13C095F}\ProxyStubClsid32]
@="{C90250F3-4D7D-4991-9B69-A5C5BC1C2AE6}"[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{8F45EF43-0585-4881-A90D-F55D35CE7797}]
@="IOperationInterrupt"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{8F45EF43-0585-4881-A90D-F55D35CE7797}\ProxyStubClsid32]
@="{95E15D0A-66E6-93D9-C53C-76E6219D3341}"[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{CD17328B-E4EF-4215-A92D-62A914658F82}]
@="IObjectWithCachedState"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{CD17328B-E4EF-4215-A92D-62A914658F82}\ProxyStubClsid32]
@="{95E15D0A-66E6-93D9-C53C-76E6219D3341}"Вы можете обратить внимание, что все эти Interface ссылаются на два CLSID: {95E15D0A-66E6-93D9-C53C-76E6219D3341} и {C90250F3-4D7D-4991-9B69-A5C5BC1C2AE6}. В версии x32 только лишь {C90250F3-4D7D-4991-9B69-A5C5BC1C2AE6}.
- Находясь в реестре или в Notepad++, открываем две ветки тех CLSID, на которые ссылались предыдущие пункты, и находим следующее:
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{95E15D0A-66E6-93D9-C53C-76E6219D3341}]
@="PSFactoryBuffer"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{95E15D0A-66E6-93D9-C53C-76E6219D3341}\InProcServer32]
@="C:\\Windows\\System32\\OneCoreUAPCommonProxyStub.dll"
"ThreadingModel"="Both"[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{C90250F3-4D7D-4991-9B69-A5C5BC1C2AE6}]
@="PSFactoryBuffer"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{C90250F3-4D7D-4991-9B69-A5C5BC1C2AE6}\InProcServer32]
@="X:\\Windows\\System32\\ActXPrxy.dll"
"ThreadingModel"="Both"
В итоге нам известны нужные нам файлы для извлечения из полноценной ОС в Windows PE, а так же у нас есть куски реестра которые нужно внести в Windows PE.
Так вот, в будущем, могут изменится адреса, например, IOperationStatusService располагался по адресу {0C3C904A-AD89-4851-9C3D-210C080CEE18}, потом уже {61A969EF-64EA-4C48-BBF5-EEDE3B32BF86}, а сейчас {6D5174EC-F425-4CD9-8643-CF36042987F1}. И если он снова изменится, то вам нужно в реестре запустить поиск IOperationStatusService и найти его по новому адресу, который потребуется вписать вместо того, что указан у меня. Тоже самое касается и остальных. Но и это не всё. Вы можете обратить внимание что все перечисленные Interface (за исключением IConflictInterrupt) ссылаются на CLSID\{95E15D0A-66E6-93D9-C53C-76E6219D3341}, к которому привязан файл OneCoreUAPCommonProxyStub.dll, а в следующей версии там может быть другой файл, или наоборот, файл тот же, но адрес CLSID уже быть другой, или и файл новый, и адрес. Так что не теряйтесь и ищите если что-то изменилось. Но в худшем случае, может потребоваться новый Interface которого нет в моём списке, тогда уже есть небольшая проблема, найти его будет не просто. И тут остаётся или гуглить, или искать методом тыка. Есть ещё более правильный вариант, зная на какой .dll файл ссылаются Interface, раньше можно было вскрыть файл через программу Resource Hacker или Restorator, и в нём найти все варианты диалоговых окон с их описанием, но, сейчас эти программы не могут вскрыть файлы последних ОС, других программ я не гуглил, да и сам я уже стар для таких расследований.
Интересный факт: если вы загуглите IConflictInterrupt, то
не найдёте ни одной статьи
с упоминанием этого файла (гугл показывает всего одну ссылку на страницу с упоминанием этой строки в .dll файле), а без него, между прочим, не открывается окно замены файлов с одинаковыми именами, и если не прописать IConflictInterrupt, то при конфликте файлов с одинаковыми именами на экране ничего не произойдёт, ОС просто проигнорирует ваш запрос на копирование файлов. Так что IConflictInterrupt очень важен, как минимум его наличие здесь, делает эту статью уникальной.
Немного справки по файлам .dll и реестру:
Для функционирования Drag&Drop обязательно требуются файлы twinapi.dll и DataExchange.dll, CLSID с привязкой к этим .dll, и ключ реестра DragDropExtension.
Для функционирования приложений которые мы собираемся интегрировать в Widnows PE, а также окна прогресса копирования/удаления/перемещения файлов включая окна замены/пропуска файлов с одинаковыми именами обязательно требуются, CLSID с привязкой к .dll и Interface указанные выше, а также почти все те файлы что я указал в начале статьи, возможно, я переборщил и пару «уже ненужных» файлов всё ещё копирую из основной ОС в Widnows PE, и честно признаюсь что не проверял работоспособность нужных мне функций ОС без тех или иных файлов, а всё потому что, что бы проверить это, надо выпилить один файлик, а потом провести проверочных работ на 20 минут, и так с каждым файлом, на что у меня просто нет времени.
9. Подготовка файла редактирования реестра
Этот пункт можно пропустить, он лишь для подстраховки. Лично мне спокойней, когда ряд параметров реестра изменены до включения ОС. Поэтому я вношу самые важные изменения реестра ещё до первого запуска.
Для этого создаём два текстовых файла (для x32 и x64 по отдельности) и вписываем туда следующее:
regexportX64.txt
Classes\CLSID\{07fc2b94-5285-417e-8ac3-c2ce5240b0fa}\InProcServer32 setvalue " " "X:\Windows\System32\twinapi.appcore.dll"
Classes\CLSID\{07fc2b94-5285-417e-8ac3-c2ce5240b0fa}\InProcServer32 setvalue "ThreadingModel" "Both"
Classes\CLSID\{34568a1f-8d5a-4080-99c7-464e2cb40008} setvalue " " "PSFactoryBuffer"
Classes\CLSID\{34568a1f-8d5a-4080-99c7-464e2cb40008}\InProcServer32 setvalue " " "X:\Windows\System32\twinapi.appcore.dll"
Classes\CLSID\{34568a1f-8d5a-4080-99c7-464e2cb40008}\InProcServer32 setvalue "ThreadingModel" "Both"
Classes\CLSID\{53067330-01CE-4027-947F-FF8580E92463}\InProcServer32 setvalue " " "X:\Windows\System32\twinapi.appcore.dll"
Classes\CLSID\{53067330-01CE-4027-947F-FF8580E92463}\InProcServer32 setvalue "ThreadingModel" "Both"
Classes\CLSID\{6B273FC5-61FD-4918-95A2-C3B5E9D7F581}\InProcServer32 setvalue " " "X:\Windows\System32\twinapi.appcore.dll"
Classes\CLSID\{6B273FC5-61FD-4918-95A2-C3B5E9D7F581}\InProcServer32 setvalue "ThreadingModel" "Both"
Classes\CLSID\{A1103531-6B1C-425F-A8C9-671616E40FA9}\InProcHandler32 setvalue " " "X:\Windows\System32\twinapi.appcore.dll"
Classes\CLSID\{B1AEC16F-2383-4852-B0E9-8F0B1DC66B4D}\InProcServer32 setvalue " " "X:\Windows\System32\twinapi.appcore.dll"
Classes\CLSID\{B1AEC16F-2383-4852-B0E9-8F0B1DC66B4D}\InProcServer32 setvalue "ThreadingModel" "Both"
Classes\CLSID\{D648FEA1-EA00-4FF4-B8BD-034BD2B25A23}\InProcServer32 setvalue " " "X:\Windows\System32\twinapi.appcore.dll"
Classes\CLSID\{D648FEA1-EA00-4FF4-B8BD-034BD2B25A23}\InProcServer32 setvalue "ThreadingModel" "Both"
Classes\CLSID\{958a6fb5-dcb2-4faf-aafd-7fb054ad1a3b}\InProcServer32 setvalue " " "X:\Windows\System32\twinapi.dll"
Classes\CLSID\{958a6fb5-dcb2-4faf-aafd-7fb054ad1a3b}\InProcServer32 setvalue "ThreadingModel" "Apartment"
Classes\CLSID\{B52D54BB-4818-4EB9-AA80-F9EACD371DF8} setvalue " " "Windows Search Platform"
Classes\CLSID\{50EF4544-AC9F-4A8E-B21B-8A26180DB13F} setvalue " " "Local Thumbnail Cache"
Classes\CLSID\{50EF4544-AC9F-4A8E-B21B-8A26180DB13F}\InprocServer32 setvalue " " "X:\Windows\System32\thumbcache.dll"
Classes\CLSID\{50EF4544-AC9F-4A8E-B21B-8A26180DB13F}\InprocServer32 setvalue "ThreadingModel" "Both"
Classes\CLSID\{2155fee3-2419-4373-b102-6843707eb41f} setvalue " " "CLSID_LocalIconCache"
Classes\CLSID\{2155fee3-2419-4373-b102-6843707eb41f}\InProcServer32 setvalue " " "X:\Windows\System32\thumbcache.dll"
Classes\CLSID\{2155fee3-2419-4373-b102-6843707eb41f}\InProcServer32 setvalue "ThreadingModel" "Both"
Classes\CLSID\{7efc002a-071f-4ce7-b265-f4b4263d2fd2} setvalue " " "CLSID_UIThreadThumbnailCache"
Classes\CLSID\{7efc002a-071f-4ce7-b265-f4b4263d2fd2}\InProcServer32 setvalue " " "X:\Windows\System32\thumbcache.dll"
Classes\CLSID\{7efc002a-071f-4ce7-b265-f4b4263d2fd2}\InProcServer32 setvalue "ThreadingModel" "Both"
Classes\CLSID\{C90250F3-4D7D-4991-9B69-A5C5BC1C2AE6} setvalue " " "PSFactoryBuffer"
Classes\CLSID\{C90250F3-4D7D-4991-9B69-A5C5BC1C2AE6}\InProcServer32 setvalue " " "X:\Windows\System32\ActXPrxy.dll"
Classes\CLSID\{C90250F3-4D7D-4991-9B69-A5C5BC1C2AE6}\InProcServer32 setvalue "ThreadingModel" "Both"
Classes\CLSID\{AE054212-3535-4430-83ED-D501AA6680E6} setvalue " " "Shell Name Space ListView"
Classes\CLSID\{AE054212-3535-4430-83ED-D501AA6680E6}\InProcServer32 setvalue " " "%SystemRoot%\System32\explorerframe.dll"
Classes\CLSID\{AE054212-3535-4430-83ED-D501AA6680E6}\InProcServer32 setvalue "ThreadingModel" "Apartment"
Classes\CLSID\{9FC8E510-A27C-4B3B-B9A3-BF65F00256A8}\InProcServer32 setvalue " " "%SystemRoot%\System32\dataexchange.dll"
Classes\CLSID\{9FC8E510-A27C-4B3B-B9A3-BF65F00256A8}\InProcServer32 setvalue "ThreadingModel" "Both"
Classes\Interface\{036B4FC7-6A11-4C07-8046-22D268C37721} setvalue " " "IInterruptedOperationHandler"
Classes\Interface\{036B4FC7-6A11-4C07-8046-22D268C37721}\ProxyStubClsid32 setvalue " " "{95E15D0A-66E6-93D9-C53C-76E6219D3341}"
Classes\Interface\{04B0F1A7-9490-44BC-96E1-4296A31252E2} setvalue " " "IFileOperationProgressSink"
Classes\Interface\{04B0F1A7-9490-44BC-96E1-4296A31252E2}\ProxyStubClsid32 setvalue " " "{95E15D0A-66E6-93D9-C53C-76E6219D3341}"
Classes\Interface\{0C9FB851-E5C9-43EB-A370-F0677B13874C} setvalue " " "IOperationsProgressDialog"
Classes\Interface\{0C9FB851-E5C9-43EB-A370-F0677B13874C}\ProxyStubClsid32 setvalue " " "{95E15D0A-66E6-93D9-C53C-76E6219D3341}"
Classes\Interface\{4AE7498C-E1C0-475F-8573-41C26127C5D8} setvalue " " "IOperationStatusTile"
Classes\Interface\{4AE7498C-E1C0-475F-8573-41C26127C5D8}\ProxyStubClsid32 setvalue " " "{95E15D0A-66E6-93D9-C53C-76E6219D3341}"
Classes\Interface\{6D5174EC-F425-4CD9-8643-CF36042987F1} setvalue " " "IOperationStatusService"
Classes\Interface\{6D5174EC-F425-4CD9-8643-CF36042987F1}\ProxyStubClsid32 setvalue " " "{95E15D0A-66E6-93D9-C53C-76E6219D3341}"
Classes\Interface\{CD17328B-E4EF-4215-A92D-62A914658F82} setvalue " " "IObjectWithCachedState"
Classes\Interface\{CD17328B-E4EF-4215-A92D-62A914658F82}\ProxyStubClsid32 setvalue " " "{95E15D0A-66E6-93D9-C53C-76E6219D3341}"
Classes\Interface\{9767060C-9476-42E2-8F7B-2F10FD13765C} setvalue " " "IImmersiveShellBroker"
Classes\Interface\{9767060C-9476-42E2-8F7B-2F10FD13765C}\ProxyStubClsid32 setvalue " " "{95E15D0A-66E6-93D9-C53C-76E6219D3341}"
Classes\Interface\{9BE5F0C8-774A-4070-9C9E-0627765E6C61} setvalue " " "IOperationStatusSink"
Classes\Interface\{9BE5F0C8-774A-4070-9C9E-0627765E6C61}\ProxyStubClsid32 setvalue " " "{95E15D0A-66E6-93D9-C53C-76E6219D3341}"
Classes\Interface\{6FAF1156-8855-47B5-BDC8-4555D13C095F} setvalue " " "IConflictInterrupt"
Classes\Interface\{6FAF1156-8855-47B5-BDC8-4555D13C095F}\ProxyStubClsid32 setvalue " " "{C90250F3-4D7D-4991-9B69-A5C5BC1C2AE6}"
Classes\Interface\{8F45EF43-0585-4881-A90D-F55D35CE7797} setvalue " " "IOperationInterrupt"
Classes\Interface\{8F45EF43-0585-4881-A90D-F55D35CE7797}\ProxyStubClsid32 setvalue " " "{95E15D0A-66E6-93D9-C53C-76E6219D3341}"
Microsoft\Ole\Extensions setvalue "DragDropExtension" "{9FC8E510-A27C-4B3B-B9A3-BF65F00256A8}"
Classes\CLSID\{95E15D0A-66E6-93D9-C53C-76E6219D3341} setvalue " " "PSFactoryBuffer"
Classes\CLSID\{95E15D0A-66E6-93D9-C53C-76E6219D3341}\InProcServer32 setvalue " " "X:\Windows\System32\OneCoreUAPCommonProxyStub.dll"
regexportX32.txt
Classes\CLSID\{958a6fb5-dcb2-4faf-aafd-7fb054ad1a3b}\InProcServer32 setvalue " " "X:\Windows\System32\twinapi.dll"
Classes\CLSID\{958a6fb5-dcb2-4faf-aafd-7fb054ad1a3b}\InProcServer32 setvalue "ThreadingModel" "Apartment"
Classes\CLSID\{B52D54BB-4818-4EB9-AA80-F9EACD371DF8} setvalue " " "Windows Search Platform"
Classes\CLSID\{50EF4544-AC9F-4A8E-B21B-8A26180DB13F} setvalue " " "Local Thumbnail Cache"
Classes\CLSID\{50EF4544-AC9F-4A8E-B21B-8A26180DB13F}\InprocServer32 setvalue " " "X:\Windows\System32\thumbcache.dll"
Classes\CLSID\{50EF4544-AC9F-4A8E-B21B-8A26180DB13F}\InprocServer32 setvalue "ThreadingModel" "Apartment"
Classes\CLSID\{2155fee3-2419-4373-b102-6843707eb41f} setvalue " " "Local Icon Cache"
Classes\CLSID\{2155fee3-2419-4373-b102-6843707eb41f}\InprocServer32 setvalue " " "X:\Windows\System32\thumbcache.dll"
Classes\CLSID\{2155fee3-2419-4373-b102-6843707eb41f}\InprocServer32 setvalue "ThreadingModel" "Apartment"
Classes\CLSID\{7efc002a-071f-4ce7-b265-f4b4263d2fd2} setvalue " " "Local Thumbnail Cache"
Classes\CLSID\{7efc002a-071f-4ce7-b265-f4b4263d2fd2}\InprocServer32 setvalue " " "X:\Windows\System32\thumbcache.dll"
Classes\CLSID\{7efc002a-071f-4ce7-b265-f4b4263d2fd2}\InprocServer32 setvalue "ThreadingModel" "Apartment"
Classes\CLSID\{C90250F3-4D7D-4991-9B69-A5C5BC1C2AE6} setvalue " " "PSFactoryBuffer"
Classes\CLSID\{C90250F3-4D7D-4991-9B69-A5C5BC1C2AE6}\InProcServer32 setvalue " " "X:\Windows\System32\ActXPrxy.dll"
Classes\CLSID\{C90250F3-4D7D-4991-9B69-A5C5BC1C2AE6}\InProcServer32 setvalue "ThreadingModel" "Both"
Classes\CLSID\{AE054212-3535-4430-83ED-D501AA6680E6} setvalue " " "Shell Name Space ListView"
Classes\CLSID\{AE054212-3535-4430-83ED-D501AA6680E6}\InProcServer32 setvalue " " "%SystemRoot%\System32\explorerframe.dll"
Classes\CLSID\{AE054212-3535-4430-83ED-D501AA6680E6}\InProcServer32 setvalue "ThreadingModel" "Apartment"
Classes\CLSID\{9FC8E510-A27C-4B3B-B9A3-BF65F00256A8}\InProcServer32 setvalue " " "%SystemRoot%\System32\dataexchange.dll"
Classes\CLSID\{9FC8E510-A27C-4B3B-B9A3-BF65F00256A8}\InProcServer32 setvalue "ThreadingModel" "Both"
Classes\Interface\{036B4FC7-6A11-4C07-8046-22D268C37721} setvalue " " "IInterruptedOperationHandler"
Classes\Interface\{036B4FC7-6A11-4C07-8046-22D268C37721}\ProxyStubClsid32 setvalue " " "{C90250F3-4D7D-4991-9B69-A5C5BC1C2AE6}"
Classes\Interface\{04B0F1A7-9490-44BC-96E1-4296A31252E2} setvalue " " "IFileOperationProgressSink"
Classes\Interface\{04B0F1A7-9490-44BC-96E1-4296A31252E2}\ProxyStubClsid32 setvalue " " "{C90250F3-4D7D-4991-9B69-A5C5BC1C2AE6}"
Classes\Interface\{0C9FB851-E5C9-43EB-A370-F0677B13874C} setvalue " " "IOperationsProgressDialog"
Classes\Interface\{0C9FB851-E5C9-43EB-A370-F0677B13874C}\ProxyStubClsid32 setvalue " " "{C90250F3-4D7D-4991-9B69-A5C5BC1C2AE6}"
Classes\Interface\{4AE7498C-E1C0-475F-8573-41C26127C5D8} setvalue " " "IOperationStatusTile"
Classes\Interface\{4AE7498C-E1C0-475F-8573-41C26127C5D8}\ProxyStubClsid32 setvalue " " "{C90250F3-4D7D-4991-9B69-A5C5BC1C2AE6}"
Classes\Interface\{0C3C904A-AD89-4851-9C3D-210C080CEE18} setvalue " " "IOperationStatusService"
Classes\Interface\{0C3C904A-AD89-4851-9C3D-210C080CEE18}\ProxyStubClsid32 setvalue " " "{C90250F3-4D7D-4991-9B69-A5C5BC1C2AE6}"
Classes\Interface\{CD17328B-E4EF-4215-A92D-62A914658F82} setvalue " " "IObjectWithCachedState"
Classes\Interface\{CD17328B-E4EF-4215-A92D-62A914658F82}\ProxyStubClsid32 setvalue " " "{C90250F3-4D7D-4991-9B69-A5C5BC1C2AE6}"
Classes\Interface\{9767060C-9476-42E2-8F7B-2F10FD13765C} setvalue " " "IImmersiveShellBroker"
Classes\Interface\{9767060C-9476-42E2-8F7B-2F10FD13765C}\ProxyStubClsid32 setvalue " " "{C90250F3-4D7D-4991-9B69-A5C5BC1C2AE6}"
Classes\Interface\{9BE5F0C8-774A-4070-9C9E-0627765E6C61} setvalue " " "IOperationStatusSink"
Classes\Interface\{9BE5F0C8-774A-4070-9C9E-0627765E6C61}\ProxyStubClsid32 setvalue " " "{C90250F3-4D7D-4991-9B69-A5C5BC1C2AE6}"
Classes\Interface\{7CCBC4D6-7AC7-415C-B5BE-FAF75D8A1E85} setvalue " " "IConflictInterrupt"
Classes\Interface\{7CCBC4D6-7AC7-415C-B5BE-FAF75D8A1E85}\ProxyStubClsid32 setvalue " " "{C90250F3-4D7D-4991-9B69-A5C5BC1C2AE6}"
Classes\Interface\{FEE9E8EA-1D4B-4076-88B1-CCCAAEC1C8AA} setvalue " " "IOperationInterrupt"
Classes\Interface\{FEE9E8EA-1D4B-4076-88B1-CCCAAEC1C8AA}\ProxyStubClsid32 setvalue " " "{C90250F3-4D7D-4991-9B69-A5C5BC1C2AE6}"
Microsoft\Ole\Extensions setvalue "DragDropExtension" "{9FC8E510-A27C-4B3B-B9A3-BF65F00256A8}"
И сохраняем эти файлы в папке C:\BuildPE\util
10. Подготовка виртуальной машины
Необходимо скачать и установить виртуальную машину. Учитывая что нам необходима лишь одновременно запущенная одна виртуальная машина, то достаточно будет VMware Workstation Player, но вы можете использовать и другую на своё усмотрение, например, VirtualBox.
Я не буду расписывать как устанавливать виртуальную машину, думаю тут ничего сложного несколько раз нажать «Далее», а вот как её настроить:
- Запускаем VMware Workstation Player и нажимаем Create a New Virtual Machine.
- Пропускаем выбор установочного носителя нажав I will install the operating system later.
- Выбираем Windows 10 and later x64 и нажимаем Next. Примечание: при создании образа x32 вы можете использовать эту же виртуальную машину, в настройках поменяв с Windows 10 and later x64 на Windows 10.
- На своё усмотрение указываем имя виртуальной машины и путь, где она будет хранится.
- На своё усмотрение указываем объем виртуального диска, нам потребуется буквально несколько мегабайт, но на всякий случай лучше указать, например, 2Гб. При указании объема лучше всего выбрать Store virtual disk as a single file, это облегчит задачу, когда мы будем извлекать из диска нужные файлы.
- На этом этапе виртуальная машина готова, но надо её ещё настроить. Итак, в списке виртуальных машин выберите только что созданную и нажмите на Edit virtual machine settings.
Укажите следующие параметры:
- Объем оперативной памяти на своё усмотрение, для комфортной работы желательно не менее 2-4Гб, у меня стоит 6Гб.
- Количество выделяемых потоков для виртуальной машины, для комфортной работы желательно не менее двух, у меня стоит 4.
- В CD/DVD выбираем Use ISO image file и указываем файл C:\BuildPE\ISO\MyPE21H2x64.iso
Машина готова для запуска, но подключенный к ней .iso файл пока не готов. И об этом в следующем разделе. Начинается самое интересное.
Итак, у нас всё готово для начала сборки своего PE образа!
II. Редактирование WIM и ISO
1. Редактирование WIM
Открываем от имени администратора Среду средств развертывания и работы с образами и списываем следующие команды:
*для новичков* отобразить редакции в .wim файле чтобы понимать с чем вы работаете
Dism /Get-WimInfo /WimFile:"C:\BuildPE\originalWIM\x64\boot.wim"
на всякий случай отключаем .wim файлы если они ранее были подключены
DISM /Cleanup-Wim
в отдельный файл экспортируем из boot.wim вторую редакцию которой является Microsoft Windows Setup (x86), наличие второго файла сохраняет оригинал на всякий случай для дальнейших повторных сборок, а их будет не мало — работа над ошибками
Dism /export-image /SourceImageFile:C:\BuildPE\originalWIM\x64\boot.wim /SourceIndex:2 /DestinationImageFile:C:\BuildPE\edit.wim /Compress:max /CheckIntegrity
монтируем образ для внесения изменений
dism.exe /mount-wim /wimfile:C:\BuildPE\edit.wim /mountdir:C:\BuildPE\Mount /index:1
на этом этапе сворачиваем «Среду средств развертывания и работы с образами», но не в коем случае не закрываем!
прав администратора недостаточно для удаления лишних файлов в образе. чтобы повысить себе плава ещё выше, я обычно запускаю от имени администратора Explorer++, открываю папку, например, C:\BuildPE\ и находясь в ней нажимаю на \, после чего у меня открывается командная строка в которой я ввожу следующие команды:
удаляем программу установки ОС
erase C:\BuildPE\Mount\Setup.exe
takeown /F C:\BuildPE\Mount\sources\*.* /A
rd C:\BuildPE\Mount\sources\ /s/q
создаём каталог «Рабочий стол» для пользователя СИСТЕМА без которого Explorer++ может выдавать ошибку
mkdir C:\BuildPE\Mount\Windows\System32\config\systemprofile\Desktop
удаляем ненужные ярлыки из меню Пуск чтобы не видеть их в меню WinXShell
rd "C:\BuildPE\Mount\ProgramData\Microsoft\Windows\Start Menu\Programs\" /s/q
rd "C:\BuildPE\Mount\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\" /s/q
переходим в каталог, где хранится offlinereg и вносим изменения в реестр
cd /d C:\BuildPE\util\offlinereg
offlinereg-win64 C:\BuildPE\Mount\Windows\System32\config\SOFTWARE " " run C:\BuildPE\util\regexportX64.txt
копируем весь набор своего софта+доп файлы для ОС
xcopy /y /o /e "C:\BuildPE\AddFiles\x64\*.*" "C:\BuildPE\Mount\*.*"
удаляем лишние логи [дело привычки]
CD /D C:\BuildPE\Mount\Windows\System32\config
DEL *.LOG1 /A /S /Q /F
DEL *.LOG2 /A /S /Q /F
DEL *.BLF /A /S /Q /F
DEL *.REGTRANS-MS /A /S /Q /F
CD /D C:\BuildPE\Mount\Windows\System32\SMI\Store\Machine\
DEL *.LOG1 /A /S /Q /F
DEL *.LOG2 /A /S /Q /F
DEL *.BLF /A /S /Q /F
DEL *.REGTRANS-MS /A /S /Q /F
CD /D C:\BuildPE\Mount\Users\Default
DEL *.LOG1 /A /S /Q /F
DEL *.LOG2 /A /S /Q /F
DEL *.BLF /A /S /Q /F
DEL *.REGTRANS-MS /A /S /Q /F
возвращаемся в «Среду средств развертывания и работы с образами»
размонтируем образ
Dism /Unmount-Image /MountDir:"C:\BuildPE\Mount" /commit
отключаем .wim файл
DISM /Cleanup-Wim
экспортируем готовый образ в новый .wim файл с целью избавится от папки [DELETED] который создаётся после редактирования .wim файла
DISM /export-image /sourceimagefile:C:\BuildPE\edit.wim /sourceindex:1 /destinationimagefile:C:\BuildPE\COMPLETE\64\boot.wim /compress:maximum
удаляем .wim файл в котором происходили изменения
erase C:\BuildPE\edit.wim
Те же команды для удобства копипаста
В «Среде средств развертывания и работы с образами»
Dism /Get-WimInfo /WimFile:"C:\BuildPE\originalWIM\x64\boot.wim"
DISM /Cleanup-Wim
Dism /export-image /SourceImageFile:C:\BuildPE\originalWIM\x64\boot.wim /SourceIndex:2 /DestinationImageFile:C:\BuildPE\edit.wim /Compress:max /CheckIntegrity
dism.exe /mount-wim /wimfile:C:\BuildPE\edit.wim /mountdir:C:\BuildPE\Mount /index:1
В cmd Explorer++
erase C:\BuildPE\Mount\Setup.exe
takeown /F C:\BuildPE\Mount\sources\*.* /A
rd C:\BuildPE\Mount\sources\ /s/q
mkdir C:\BuildPE\Mount\Windows\System32\config\systemprofile\Desktop
rd "C:\BuildPE\Mount\ProgramData\Microsoft\Windows\Start Menu\Programs\" /s/q
rd "C:\BuildPE\Mount\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\" /s/q
cd /d C:\BuildPE\util\offlinereg
offlinereg-win64 C:\BuildPE\Mount\Windows\System32\config\SOFTWARE " " run C:\BuildPE\util\regexportX64.txt
xcopy /y /o /e "C:\BuildPE\AddFiles\x64\*.*" "C:\BuildPE\Mount\*.*"
CD /D C:\BuildPE\Mount\Windows\System32\config
DEL *.LOG1 /A /S /Q /F
DEL *.LOG2 /A /S /Q /F
DEL *.BLF /A /S /Q /F
DEL *.REGTRANS-MS /A /S /Q /F
CD /D C:\BuildPE\Mount\Windows\System32\SMI\Store\Machine\
DEL *.LOG1 /A /S /Q /F
DEL *.LOG2 /A /S /Q /F
DEL *.BLF /A /S /Q /F
DEL *.REGTRANS-MS /A /S /Q /F
CD /D C:\BuildPE\Mount\Users\Default
DEL *.LOG1 /A /S /Q /F
DEL *.LOG2 /A /S /Q /F
DEL *.BLF /A /S /Q /F
DEL *.REGTRANS-MS /A /S /Q /F
В «Среде средств развертывания и работы с образами»
Dism /Unmount-Image /MountDir:"C:\BuildPE\Mount" /commit
DISM /Cleanup-Wim
DISM /export-image /sourceimagefile:C:\BuildPE\edit.wim /sourceindex:1 /destinationimagefile:C:\BuildPE\COMPLETE\64\boot.wim /compress:maximum
erase C:\BuildPE\edit.wim
Готово! .WIM образ Windows 10 PE 21H2 x64 создан, осталось лишь занести его в .iso файл и можно пробовать первую заготовку. Теперь тоже самое можно повторить и для Windows 10 PE 1507 x32, но на этот раз я уберу комментарии дабы проще было копировать:
В «Среде средств развертывания и работы с образами»
Dism /Get-WimInfo /WimFile:"C:\BuildPE\originalWIM\x32\boot.wim"
DISM /Cleanup-Wim
Dism /export-image /SourceImageFile:C:\BuildPE\originalWIM\x32\boot.wim /SourceIndex:2 /DestinationImageFile:C:\BuildPE\edit.wim /Compress:max /CheckIntegrity
dism.exe /mount-wim /wimfile:C:\BuildPE\edit.wim /mountdir:C:\BuildPE\Mount /index:1
В cmd Explorer++
erase C:\BuildPE\Mount\Setup.exe
takeown /F C:\BuildPE\Mount\sources\*.* /A
rd C:\BuildPE\Mount\sources\ /s/q
mkdir C:\BuildPE\Mount\Windows\System32\config\systemprofile\Desktop
rd "C:\BuildPE\Mount\ProgramData\Microsoft\Windows\Start Menu\Programs\" /s/q
rd "C:\BuildPE\Mount\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\" /s/q
cd /d C:\BuildPE\util\offlinereg
offlinereg-win64 C:\BuildPE\Mount\Windows\System32\config\SOFTWARE " " run C:\BuildPE\util\regexportX32.txt
xcopy /y /o /e "C:\BuildPE\AddFiles\x32\*.*" "C:\BuildPE\Mount\*.*"
CD /D C:\BuildPE\Mount\Windows\System32\config
DEL *.LOG1 /A /S /Q /F
DEL *.LOG2 /A /S /Q /F
DEL *.BLF /A /S /Q /F
DEL *.REGTRANS-MS /A /S /Q /F
CD /D C:\BuildPE\Mount\Windows\System32\SMI\Store\Machine\
DEL *.LOG1 /A /S /Q /F
DEL *.LOG2 /A /S /Q /F
DEL *.BLF /A /S /Q /F
DEL *.REGTRANS-MS /A /S /Q /F
CD /D C:\BuildPE\Mount\Users\Default
DEL *.LOG1 /A /S /Q /F
DEL *.LOG2 /A /S /Q /F
DEL *.BLF /A /S /Q /F
DEL *.REGTRANS-MS /A /S /Q /F
В «Среде средств развертывания и работы с образами»
Dism /Unmount-Image /MountDir:"C:\BuildPE\Mount" /commit
DISM /Cleanup-Wim
DISM /export-image /sourceimagefile:C:\BuildPE\edit.wim /sourceindex:1 /destinationimagefile:C:\BuildPE\COMPLETE\32\boot.wim /compress:maximum
erase C:\BuildPE\edit.wim
Готово! .WIM образ Windows 10 PE 1507 x32 создан, осталось лишь занести его в .iso файл и можно пробовать первую заготовку.
2. Редактирование .iso
С помощью UltraISO открываем наши .iso файлы, и в папку sources и вставляем наши только что испеченные файлы C:\BuildPE\COMPLETE\x64\boot.wim в C:\BuildPE\ISO\MyPE21H2x64.iso и C:\BuildPE\COMPLETE\x32\boot.wim в C:\BuildPE\ISO\MyPE1507x32.iso, и сохраняем оба .iso файла.
Далее я буду рассказывать всё лишь в варианте Windows 10 PE 21H2 x64 т.к. дальнейшие шаги один в один, а не чуть-чуть отличаемые как прежних пунктах, где можно было что-то напутать «на замыленный глаз».
3. Первый запуск WinPE и настройка
Открываем VMware Workstation Player и выбираем нашу виртуальную машину, она уже настроена и готова для запуска, и можно её включать, нажав Play virtual machine. При появлении надписи Press any key to boot from CD or DVD нажимаем любую клавишу и ждём окончания загрузки.
Что мы видим? Командную строку с перечислением каких-то характеристик железа виртуальной машины. А где меню? А где графический интерфейс? Сейчас всё будет. Вы можете вызвать либо CLaunch путем нажатия комбинации клавиш Win+Z, либо запустить графический интерфейс WinXShell путем ввода в командную строку UI.bat или открыв CLaunch и нажав на соответствующий пункт.
Мы уже интегрировали в Windows PE нужные нам программы, некоторым программам не нужны никакие настройки, но некоторым они обязательны, и теперь мы можем их настроить чтобы получить файл настроек, затем сохранить его на отдельном виртуальном диске для дальнейшего извлечения в папку C:\BuildPE\AddFiles\… для дальнейшего создания второй версии своей Windwos PE в которой программы уже будут настроены так, как нам надо.
Чтобы сохранить файлы, нужен виртуальный диск, мы его подключили, но не форматировали. Поэтому с этого и начнём.
В запущенной Windwos PE в открытой командной строки вводим следующие команды:
diskpart
select disk 0
create partition primary
format quick override
assign
exit
После чего у нас будет диск С. Если вы сделали его объемом 2Гб, то хоть объём у него и небольшой, но нам и этого более чем достаточно т.к. необходимо скопировать лишь несколько конфигов объемом как правило менее 1Мб.
- Настройка CLaunch — Эта программа уже настроена в большей степени, но вы можете увеличить количество пунктов дополнив их своими программами, а также добавить дополнительные вкладки, настроить размеры окна, горячую клавишу вызова меню и т.д. После закрытия программы через Alt+F4 она сохранит все настройки внутри своего же каталога X:\Program Files\CLaunch\Data которые вы можете скопировать на диск C:\ воспользовавшись проводником Explorer++ который вы можете включить либо через заранее настроенный CLaunch, либо прописать в командной строке explorer++.
- Настройка меню Пуск WinXShell — В Explorer++ откройте диск X:\Program Files\ и сделайте ярлыки нужных вам программ, все созданные ярлыки вы можете скопировать на диск C:\.
- Настройка Notepad++ — после настройки Notepad++ все свои файлы настроек он хранит по адресу X:\Users\Default\AppData\Roaming\Notepad++ которые также можно скопировать на диск C:\
По окончанию всех работ по настройке программ и созданию ярлыков, а быть может вы и батники какие-нибудь создавали, вы можете выключить виртуальную машину, и с помощью 7-Zip открыть файл виртуального диска который находится там где вы указали адрес виртуальной машины при её создании, например, C:\Users\%username%\Virtual Machines\VHD\BuildMyPE.vmdk\, открыв .vmdk файл извлеките из него все конфигурации что вы создали и распределите по нужным каталогам для создания финального образа (эх, если бы всё так было просто):
Все созданные ярлыки для меню пуск извлечь в каталог C:\BuildPE\AddFiles\x64\ProgramData\Microsoft\Windows\Start Menu
Настройки CLaunch извлечь в каталог C:\BuildPE\AddFiles\x64\Program Files\CLaunch\Data
Настройки Notepad++ извлечь в каталог C:\BuildPE\AddFiles\x64\Users\Default\AppData\Roaming\Notepad++
Если вы перенастраивали Explorer++, то его настройки хранятся там же где и .exe файл, а в нашем случае это C:\BuildPE\AddFiles\x64\Windows\System32
Я не просто так показал пример с настройками, дело в том, что новички могут не сразу понять, что куда копипастить, а тут сразу 2 варианта:
- Программа хранит настройки в своей отдельной папке
- Программа хранит настройки рядом с своим .exe
- Программа хранит настройки в AppData
- Тут ещё не хватает варианта, когда программа хранит настройки в реестре, и тут уже гугл в помощь, а то для этой цели и так очень длинная статья сильно разрастется.
Ну чтож, на этом этапе мы готовы создать вторую версию образа. Для этого удаляем или переименовываем .wim файл C:\BuildPE\COMPLETE\x64\boot.wim, чтобы на его месте создать новый, и полностью повторяем шаг II.1 и II.2. Запускаем виртуальную машину и проверяем результат своих работ, находим ошибки, исправляем, и снова, и снова, и снова создаём новую версию образа до тех пор, пока не будет идеальный для вас вариант.
Вы можете обратить внимание что если закрыть командную строку, то вся ОС завершит работу, т.к. командная строка — это основное приложение ОС которое вы закрываете. Для тех кому командная строка не нужна или даже мешает, и хочется сразу загрузить графическую оболочку или проводник, или ещё что, то вместо командной строки можно задать другое приложение, которое кстати тоже завершит работу ОС после закрытия. Для этого вам потребуется создать файл Winpeshl.ini в папке System32, а вот как его настроить можно узнать из этого справочника.
Надеюсь, моя статья оказалась для вас полезна. Она, конечно, достаточно занудна, но я решил, что уж лучше один раз доходчиво всё объяснить, чем оставить людей без какой-то ценной информации, которую можно искать годами.
P.S.
У меня была ситуация, когда был ноутбук, у которого исправно загружается ОС, и после того, как пропадает логотип Windows и перед тем, как начнется загрузка пользователя, появляется пауза длиной в 1-3 минуты. И как задать вопрос поисковику? Черный экран после загрузки ОС? Любой поисковик будет думать, что дело в том, что компьютер вообще не загружается и черный экран висит всё время после старта, выдан миллиард страниц на эту тему, а подойдёт по теме лишь единицы, которые даже не первых 100 страниц поиска (я проверял). Выходит, какими бы умными не были поисковики, а вот такие уточнения они ещё не скоро начнут понимать. Я сам задавал этот запрос в течении долгого времени, перелистал без шуток, сотни страниц, и по великой случайности, уже не через поисковики, а по темам форумов, перескакивая с одного форума на другой, как темы при разговоре с интересным человеком, в итоге нашел ответ на свой вопрос. Дело было в ULPS, который нужно было отключить в реестре. Это я всё к чему. С созданием Windows PE такая же ситуация, и например, чтобы сделать рабочим окно копирования в последних версиях ОС, нужно сделать то, о чем не знает даже Google, а как уж задать вопрос, это ещё сложнее. Собственно, именно это и стало причиной написать эту статью, раз уж другие умельцы об этом не пишут, хотя на торрентах свои работы выкладывают:)
III. Интеграция пакетов и драйверов
В начале статьи я обещал рассказать о интеграции дополнительных пакетов которые мы так и не установили в наш образ. Cкачиваем и дополнительно устанавливаем надстройку Windows PE для Windows ADK.
Допустим вам необходимо добавить NetFX, делаем следующее:
В уже смонтированном образе в пункте II.2 перед командой Dism /Unmount-Image /MountDir:«C:\BuildPE\Mount» /commit вводим следующие команды:
Dism /Add-Package /Image:"C:\BuildPE\Mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-WMI.cab"
Dism /Add-Package /Image:"C:\BuildPE\Mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-NetFX.cab"
Найти полный список дополнительных пакетов, а также узнать зависимости этих пакетов, вы сможете на этой странице.
Допустим вам необходимо интегрировать драйвер (например, линий PCI и накопителей SSD для MacBook последних лет чтобы вручную каждый раз их не устанавливать на рабочей ОС WinPE), то вводим следующую команду
Dism /image:C:\BuildPE\Mount /Add-Driver /Driver:C:\BuildPE\Drv\*.inf
Где * — это или все драйвера что есть в каталоге C:\BuildPE\Drv, или замените *, на имя конкретного файла драйвера.
Всем спасибо!
Прочитано:
4 884
По умолчанию, когда я устанавливал на свою рабочую систему Windows 10 Pro amd64 (Version 10.0.17134.254)
пакет Windows ADK, пакет установил по сути все необходимое за исключением Среда предустановки Windows (WinPE) которая представляет из себя мини операционную систему используемую для установки, развертывания. Возможности WinPE – это
- Пункт №1: настройка HDD (SSD) перед установкой Windows
- Пункт №2: установка Windows с помощью файла ответов, как с локального диска, так и по сети (smb-ресурс)
- Пункт №3: добавление драйверов с целью выполнить пункт 2
Итак еще раз обратившись к поисковой системе вышел на страницу где отдельно скачивается среда предустановки Windows: https://go.microsoft.com/fwlink/?linkid=2022233
, после скачивания пакета: adkwinpesetup.exe (размер 5,7 Gb),
получаю возможность установить «Средство предустановки Windows (Windows PE)
” которое включает в себя:
- Среда предустановки Windows (x86)
- Среда предустановки Windows (AMD64)
Win + Windows Kits – Среда средств развертывания и работы с образами
и запускаем ее с правами «Администратора
». Проверяю, что утилита теперь имеется:
C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools>copype
Creates working directories for WinPE image customization and media creation.
copype { amd64 | x86 | arm | arm64 } <workingDirectory>
amd64 Copies amd64 boot files and WIM to <workingDirectory>\media.
x86 Copies x86 boot files and WIM to <workingDirectory>\media.
arm Copies arm boot files and WIM to <workingDirectory>\media.
arm64 Copies arm64 boot files and WIM to <workingDirectory>\media.
Note: ARM/ARM64 content may not be present in this ADK.
workingDirectory Creates the working directory at the specified location.
Example: copype amd64 C:\WinPE_amd64
Да, теперь я могу подготовить образ winpe под различные архитектуры с последующей целью установки Windows 10 через файл ответов (Autounattend.xml
) который у меня лежит там же где и распакованный образ Windows 10 с конкретной редакцией install.wim
на SAMBA-ресурсе.
Для архитектуры amd64:
C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools>copype amd64 c:\winpe_x64
C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools>copy "c:\Program Files\Windows AIK\Tools\PETools\amd64\winpe.wim" c:\winpe_x64\media\sources\boot.wim /Y
C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools>copy "c:\Program Files\Windows AIK\Tools\amd64\imagex.exe" c:\winpe_x64\media\
C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools>oscdimg -n -bC:\winpe_x64\fwfiles\etfsboot.com c:\winpe_x64\media c:\winpe_x64\winpe_amd64.iso
А вот на релиз Windows 10 Pro x64 (10.0.17134.112)
когда установил среду предустановки WinPE таких путей не оказалось как выше, а файл winpe.wim
располагается по:
C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\en-us
А значит с учетом этого команды по подготовке образа winpe_amd64.iso
будут следующими:
C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools>copype amd64 c:\winpe_x64
C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools>cd "..\..\Assessment and Deployment Kit\Windows Preinstallation Environment"
C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment>copy amd64\en-us\winpe.wim c:\winpe_x64\media\sources\boot.wim /Y
C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment>copy "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\amd64\DISM\imagex.exe" c:\winpe_x64
C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment>oscdimg -n -bC:\winpe_x64\fwfiles\etfsboot.com c:\winpe_x64\media c:\winpe_x64\winpe_amd64.iso
Для архитектуры x86:
C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools>copype x86 c:\winpe_x86
C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools>copy "c:\Program Files\Windows AIK\Tools\PETools\x86\winpe.wim" "c:\winpe_x86\media\sources\boot.wim" /Y
C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools>copy "C:\Program Files\Windows AIK\Tools\x86\imagex.exe" c:\winpe_x86\media\
C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment>oscdimg -n -bC:\winpe_x86\fwfiles\etfsboot.com c:\winpe_x86\media c:\winpe_86\winpe_amd86.iso
по аналогие с выше указанным для текущей редакции Windows и пути для образа x86 будут другими.
На заметку: Я уже давно не использую Windows 10 Pro x86 так что не особо-то и заостряю на ней внимание.
Так теперь его нужно проверить, а как? К примеру создать VM либо через Virtualbox, либо QEMU+KVM и выставить что первым загрузка должна идти с образа winpe. И если Вы увидите загрузку ниже, как на моем представленном скриншоте, то все у Вас получилось.
Образ загрузился. Работает, значит мои действия правильные. Остается скопировать данный образ winpe.iso под каждую архитектура на мой PXE сервис. Как и что дальше делать с этой заметкой я подробно остановлюсь в следующих реальных заметках на моем блоге. На этом у меня всё, с уважением автор блога Олло Александр aka ekzorchik.
Комплект средств для оценки и развертывания Windows(R) (Windows ADK) – это набор средств и документов, позволяющих настраивать, оценивать и развертывать операционные системы Windows на новых компьютерах.
Windows ADK впервые применяется в Windows(R) 8. Средства, которые ранее находились в предустановочном наборе OPK (OEM Preinstallation Kit) и пакете автоматической установки Windows, теперь есть в Windows ADK.
Средства развертывания позволяют настраивать и развертывать образы Windows, а также управлять ими. Средства развертывания могут использоваться для автоматизирования развертывания Windows, что позволяет установить Windows без непосредственного участия пользователя. В средства развертывания входят:
Система обслуживания образов развертывания и управления ими (DISM)
Диспетчер установки Windows (SIM)
OSCDIMG, BCDBoot, DISMAPI, WIMGAPI, а также другие средства и интерфейсы
Вы можете работать независимо или с участниками, чтобы создать компонент (приложение, драйвер или оба) в соответствии с предварительно определенными критериями качества.
Businesses that need to deploy Windows in a larger environment often require customization before they can go about their operations and processes. This large-scale deployment is carried out by IT professionals and system administrators on many computers using the toolset, known as the Windows Assessment and Deployment Kit, or simply, Windows ADK.
Microsoft Windows ADK is a collection of tools that you can combine to prepare, assess, and launch image-based large-scale Windows deployments. These tools are also used to test the operating system’s quality and performance, as well as the applications running on it.
The Windows Assessment and Deployment Kit was earlier known as the Windows Automated Installation Kit (WAIK).
Windows ADK can be deployed on a broad range of devices, such as desktops, notebooks, Internet of Things (IoT) devices, etc. This toolkit works across platforms that work with devices with and without screens.
Windows ADK was first introduced in Windows Vista and since then has always been available in the latest Windows operating systems. The tools currently available in Windows ADK have varied through the years, but currently, they include the following:
- Windows System Image Manager
- Windows Preinstallation Environment (WinPE)
- Deployment Image Servicing and Management tool (DISM)
The key advantage of using Windows ADK for IT teams is to apply different tools to test software, drivers, and hardware compatibility before finally moving to Windows 11 or 10.
The Application Compatibility Toolkit, for instance, lets developers and IT professionals test how 32 and 64-bit Windows applications work on a new operating system before the final installation. IT admins can also use Windows ADK to automate large-scale deployments of Windows.
Download Windows 10 and 11 ADK Versions
On a high level, Windows ADK has two different formats, which have their own versions. One format is reserved for Windows Insider Preview users. The other format is available publicly and can be downloaded via the Windows ADK page on Microsoft’s website.
The variant available publicly is usually around 2 MB in size and comes in different versions, where each new release of Windows ADK involves new features and product enhancements.
If you want to know about the version history, take a look at the list below:
Windows ADK Versions | Download Links |
Windows ADK for Windows 11 22H2 | Download ADK Download WinPE Addon |
Windows ADK for Windows 11 21H2 | Download ADK Download WinPE Addon |
Windows ADK for Windows 10 version 22H2 | Download ADK Download WinPE Addon |
Windows ADK for Windows 10 version 21H2 | Download ADK Download WinPE Addon |
Windows ADK for Windows 10 version 21H1 | Download ADK Download WinPE Addon |
Windows ADK for Windows 10 version 20H2 | Download ADK Download WinPC Addon |
Windows ADK for Windows 10 version 2004 | Download ADK Download WinPE Addon |
Windows ADK for Windows 10 version 1909 | Download ADK Download WinPE Addon |
Windows ADK for Windows 10 version 1903 | Download ADK Download WinPE Addon |
Windows ADK for Windows 10 version 1809 | Download ADK Download WinPE Addon |
Windows ADK for Windows 10 version 1803 | Download ADK |
Windows ADK for Windows 10 version 1709 | Download ADK |
Windows ADK for Windows 10 version 1703 | Download ADK |
Windows ADK for Windows 10 version 1607 | Download ADK |
Windows ADK for Windows Insider Preview | Download ADK |
The Windows Preinstallation Environment (WinPE) comes as a separate download from the Assessment and Deployment Kit (ADK), before Windows 10 version 1809. To add Windows PE to your ADK installation, you need to download and install the Windows PE add-on after installing the ADK.
When it comes to features, Windows 10 ADK allows you to select specific features at the time of installation. You can pick and choose the exact features you want to include in the toolkit. The options include:
- Application Compatibility Tools
- Deployment Tools
- Windows Preinstallation Environment (Windows PE)
- Imaging and Configuration Designer (ICD)
- Configuration Designer
- User State Migration Tool (USMT)
- Volume Activation Management Tool (VAMT)
- Windows Performance Toolkit
- Windows Assessment Toolkit
- Microsoft User Experience Virtualization (UE-V)
- Application Virtualization Sequencer (App-V)
- Microsoft Application Virtualization Auto Sequencer (App-V)
- Media experience Analyzer
In general, these features let you perform the following functions:
- Add product branding, applications, along with settings
- Keep Windows up to date with the latest updates, language packs, and drivers
- Look for and identify application compatibility
- Perform user data migration between Windows installations
- Manage bulk activation of Windows
How to Install Windows ADK
Since you can only install one version of Windows ADK at a time, you will need to uninstall any existing ADK installation before installing the new one.
Otherwise, you will need to install the new ADK using the command line for multiple ADK versions working on the same computer.
Follow these steps to install Windows ADK using the traditional method:
-
Download the correct ADK version from above.
-
Run the “adksetup.exe” file to start the installation.
-
Now select “Download the Windows Assessment and Deployment Kit for installation on a separate computer” and click Next.
Install ADK on a separate computer -
Select either Yes or No for Windows Kits Privacy and click Next.
Select privacy preferences -
Click Accept to agree to the licensing terms.
Accept license agreement The download process will now start.
-
Once downloaded, close the wizard.
Close the wizard
After the download process is complete, you can move the downloaded files onto the computer on which you want to install Windows ADK.
If you wish to install it on the current computer, then you must select the first option “Install the Windows Assessment and Deployment Kit on this computer” in Step 3 above and then select the components to install.
Download and Install WinPE Add-On
As discussed earlier in the article, starting with Windows 10 ADK version 1809, WinPE is no longer part of the ADK tool. If you wish to get WinPE, follow these steps to download and install the add-on:
Note: The minimum estimated disk space required is 6.0 GB for the WinPE add-on. Hence, it may take longer for the installation to finish than the ADK. The package includes Windows PE(x86), Windows PE (AMD64), Windows PE (ARM), and Windows PE (ARM64).
-
Begin by downloading the WinPE setup file from the links given above for your respective OS version.
-
Run the downloaded “adkwinpesetup.exe” file.
-
The rest of the process is the same as Windows ADK installation.
Windows ADK Validation
To confirm the Windows ADK installation on a device, follow these steps:
-
Open the Programs and Feature applet by typing in “appwiz.cpl” in the Run Command box.
Open Programs and Features -
Check that Windows ADK and Windows PE have been installed.
Windows ADK has been installed
Conclusion
In order to deploy Windows OS on a large scale, you need a Windows Assessment and Deployment Kit. This article covers the basics of the Windows ADK toolkit, its download links directly from Microsoft, and how to install it.
You can also use this tool and its add-on in conjunction with Windows Deployment Server to level up your automation and operations.
WinPE (Windows Preinstallation Environment) – это урезанная версия операционной системы Windows. Главное отличие WindowsPE
от стандартной Windows заключается в том, что ее можно загрузить со сменного носителя (CD, DVD, USB). Т.е. при наличии диска с WinPE вы сможете запустить компьютер и восстановить работоспособность существующей системы, если она оказалась повреждена.
Загрузившись с WinPE мы получаем полный доступ к жестким дискам компьютера (в т.ч. к NTFS-томам, реестру, настройкам и драйверам), следовательно – можем заменить поврежденные системные файлы оригинальными или, например, произвести какие-то операции с разделами диска.
Существуют как официальные версии WindowsPE от Microsoft, так и различные сборки. Первая официальная версия (Windows PE 1.0) была собрана на основе Windows XP, а последняя на момент написания данной статьи (Windows PE 4.0) – на основе Windows 8.
WinPE от Microsoft имеют приличный вес, но при этом малофункциональны. Поэтому среди пользователей большей популярностью пользуются, так называемые, сборки –
наборы программ, работающих в среде WindowsPE. Пожалуй, самой известной такой сборкой является диск аварийного восстановления ERD Commander
. Изначально он являлся разработкой Winternals Software, но в 2006 году компанию приобрел Microsoft и с тех пор ERD Commander стал частью набора программных средств Microsoft Desktop Optimization Pack.
В составе ERD Commander имеется широкий набор инструментов, с помощью которых вы можете устранить серьезные неполадки в работе вашей системы, изменить забытый пароль администратора, восстановить удаленные файлы и т.д. Более подробно об ERD Commander вы можете прочитать в .
С выходом Windows 8 обновилась и среда предустановки Windows PE. Появлению Windows 8.1 сопутствовал выход PE 5.0, a Windows 8.1 Update соответствует версия PE 5.1. Среда Windows PE входит в Windows ADK, который теперь объединяет средства развертывания и оценки различных параметров системы.
Что входит в Windows ADK
Раньше инструменты для подготовки операционной системы к развертыванию и оценки ее работы поставлялись отдельными наборами. Теперь Windows Assessment and Development Kit
(далее ADK) объединил несколько пакетов.
Deployment and Imaging Tools и Windows Preinstallation Environment
Эти средства для подготовки Windows к развертыванию ранее входили в WAIK, а Windows System Image Manager даже не изменился внешне.
Windows Performance Toolkit
Набор инструментов для оценки производительности Windows, с которым вы уже знакомы , раньше поставлялся в наборе SDK. Теперь в WPT входят новые средства для записи различных сценариев работы приложений и системы (Windows Performance Recorder) и просмотра записей (Windows Performance Analyzer).
Консоль удобна тем, что в нее уже включены различные тесты, причем они объединены в группы для комплексной оценки.
Загрузка и установка Windows ADK
Microsoft не предлагает к загрузке ISO, но с помощью установщика вы можете скачать полный комплект (инструкции на английском) и сделать из него образ, если необходимо. После установки вы найдете все наборы в папке Program Files\Windows Kits. Впрочем, если у вас 64-разрядная система, туда упадет лишь часть средств развертывания, а остальное окажется в Program files (x86).
Дальше в программе:
Что нового в Windows PE
Полный список изменений в разных версиях PE есть на этой странице библиотеки TechNet . Например, на Windows PE 4.0 основана среда предустановки Windows 8, что повлекло ряд значимых изменений по сравнению с Windows PE 3.1. Так, расширился список пакетов, которые можно внедрить в PE, в частности добавились:
- .NET (WinPE-NetFX)
обеспечивает запуск приложений, которым требуется.NET Framework. - Powershell (WinPE-PowerShell)
позволяет использовать PowerShell в среде PE. В состав ADK входит новая версия Powershell. - DISM PowerShell Cmdlets (WinPE-DismCmdlets)
представляют собой новые командлеты третьей версии Powershell для создания и обслуживания WIM образов - Remote Network Driver Specification (WinPE-RNDIS)
пригодится для доступа к удаленным клиентам из Windows PE - Windows PE Secure Startup (WinPE-SecureStartup)
нужен для управления BitLocker и TPM.
Изменения в Windows PE 5.0 и 5.1 не такие значительные. Но если 5.0 вошла в ADK, то 5.1, добавляющая поддержку WimBoot , на момент последнего обновления этой статьи нужно применять в качестве обновления к 5.0 .
Подготовка рабочей папки
Введите в поиск среда средств
(в англ. версии — deployment
) и запустите от имени администратора командную строку средств развертывания. По сути это файл DandISetEnv.bat
из папки Deployment and Imaging Tools
, задающий необходимые переменные среды для быстрого доступа к инструментам командной строки.
Для работы с автоустановкой и Windows PE у меня давно создана переменная среды %ua%
, ведущая в папку unattend
в корне профиля. Вы можете создать такую же переменную на постоянной основе, либо только в рамках текущей сессии командной строки, как показано ниже.
:: Задайте путь к рабочей папке (избегайте кириллицы и пробелов в пути)
set ua=C:\unattend:: Создайте папку
md %ua%
# Задайте путь к рабочей папке (избегайте кириллицы и пробелов в пути)
$env:ua = «C:\unattend»
# Создайте папку
md $env:ua
Все дальнейшие команды будут использовать переменную %ua% вне зависимости от того, где у вас создана рабочая папка.
Копирование файлов Windows PE в рабочую папку
В ADK входит удобный файл copype.cmd
, который делает эту работу одной командой.
Учтите, что с помощью DISM из 32-разрядной PE можно обслуживать Windows любой разрядности, а из 64-разрядной PE — только 64-разрядную . Во всех моих командах подразумевается создание 32-разрядной среды Windows PE. Для подготовки 64-разрядного диска замените везде x86
на amd64
.
В командной строке выполните:
Cd «..\Windows Preinstallation Environment»
copype.cmd x86 %ua%\winpe_x86\
Первая команда переходит в папку с наборами файлов Windows PE, а вторая запускает файл copype.cmd
с параметрами x86
для создания 32-разрядной PE и %ua%\winpe_x86\
для копирования необходимых файлов в эту папку, с которой мы будем работать дальше.
Работа WIM-образом Windows PE
Все действия нужно выполнять в командной строке средств развертывания, которую вы запустили с полными правами на предыдущем этапе.
Шаг 1 – Подключение образа
Подключение WIM-образа выполняется одной командой с помощью утилиты DISM. Если вы часто работаете с WIM-образами, не повредит сначала очистить все предыдущие подключения.
Dism /Cleanup-Wim
dism /Mount-Wim /WimFile:%ua%\winpe_x86\media\sources\boot.wim /index:1 /MountDir:%ua%\winpe_x86\mount
Шаг 2 – Добавление пакетов в образ
Пакеты находятся в папке WinPE_OCs
, и мы добавим четыре пакета:
- .Net Framework
- PowerShell
- командлеты DISM
Первая команда переходит в папку, а вторая добавляет пакеты:
Cd x86\WinPE_OCs
dism /image:%ua%\winpe_x86\mount /Add-Package /PackagePath:WinPE-NetFx.cab /PackagePath:WinPE-PowerShell.cab /PackagePath:WinPE-DismCmdlets.cab /PackagePath:WinPE-wmi.cab
Возможность перечислить сразу несколько пакетов в одной команде ускоряет дело.
Вы можете добавить любые другие пакеты из папки WinPE_OCs. Например, WinPE-Scripting.cab
обеспечит работу сценариев Windows Script Host (WSH). Но учтите, что каждый пакет увеличивает размер образа Windows PE.
Важно!
Для работы PowerShell необходим.NET Framework, поэтому сначала нужно добавлять пакет WinPE-NetFx4.cab
, и только вслед за ним WinPE-PowerShell3.cab
и WinPE-DismCmdlets.cab
.
Поскольку добавление пакетов сродни установке программ, при импорте WinPE-PowerShell3.cab
без пакета.NET будет возникать ошибка 0x800f081e
. Создавая свой первый диск, я добавлял пакеты в правильном порядке. Но потом случайно изменил его, когда собрал все пакеты в одну команду. Для решения проблемы пришлось плясать с бубном (в прямом смысле слова:)
Проверить наличие пакетов в образе вы можете командой:
Dism /image:%ua%\winpe_x86\mount /Get-Packages
Шаг 3 – Добавление драйверов
Этот шаг необязателен, поскольку Windows PE содержит базовый набор драйверов, в том числе и для сетевых карт. Доступ к сети может вам понадобиться, например, для сохранения захваченного WIM-образа на сетевом диске.
Если возникла необходимость, с помощью DISM можно добавить:
- отдельный драйвер, указав путь к INF-файлу
- все драйверы из папки, указав путь к ней и ключ /recurse
Примеры этих команд:
Dism /Image:%ua%\winpe_x86\mount /Add-Driver /Driver:C:\drivers\mydriver.INF
dism /Image:%ua%\winpe_x86\mount /Add-Driver /Driver:C:\drivers /recurse
Шаг 4 – Добавление своих утилит и сценариев
У меня есть папка Tools
, где хранятся различные утилиты и средства командной строки. Я всегда включаю ее в состав Windows PE, добавляя в корень диска.
Xcopy /e /y «%userprofile%\PortableSoft\Tools» %ua%\winpe_x86\media\Tools\
Альтернативно, вы можете скопировать утилиты прямо в папку System32
образа. Тогда их можно будет запускать, не переходя в папку Tools
или не указывая полный путь. Я, однако, предпочитаю отделять мух от котлет.
Видно, что.NET Framework успешно добавлен, поскольку отображается список командлетов DISM в PowerShell 3. В ближайшее время я покажу, как использовать их для работы с WIM-образами из Windows PE.
Чтобы не терять время зря, вы пока можете прочесть интересные факты и полезные советы на тему Windows PE, а также поэкспериментировать с запуском приложений и заменой интерфейса командной строки на любимый файловый менеджер.
А вы пользуетесь Windows PE или другими дисками собственного изготовления? Расскажите в комментариях, какие диски вы используете для обслуживания и восстановления системы!
В данной статье будет рассказано, как вручную создать собственную сборку Windows PE, содержащую те возможности и компоненты, которые отсутствуют там по умолчанию, но их наличие необходимо в подобном инструменте. Также дам важный совет — не бойтесь отходить от данной инстукции. Воображайте. Находите нестандартные методы решения проблемы. Именно благодаря такому подходу вы сможете создать наиболее функциональную сборку.
Ядро
Начинать создание сборки следует с ядра. Ядро Windows PE содержится в пакете Windows AIK для Windows 7.
Далее необходимо запустить командную строку средств развертывания и выполнить команду
copype.cmd <архитектура> <путь>
При том каталог, указанный в качестве аргумента copype.cmd, не должен существовать.
Вы можете создать сборки для архитектур x86,x64 и Itanium(x86,amd64,ia64)
Структура сборки
Проще говоря, сборка – это то, что вы получили в целевой папке после работы сценария copype.cmd. Работать сборка не может, ее необходимо прежде всего поместить на носитель и написать загрузчик. После этого ее уже можно будет назвать пользовательски настроенной системой Windows PE 3.0.
Сборка состоит из папок ISO, в которой находится содержимое, копируемое на носитель при подготовке загрузочного накопителя, а именно основа загрузчика – папки boot, efi, sources, файл bootmgr.
Также есть пустая папка mount, предназначенная для монтирования образа.
Еще там хранится файл etfsboot.com, предназначенный для создания загрузчика на CD\DVD диске
И самое главное, это файл winpe.wim, хранящий собственно систему Windows PE
Итак, создание настроенной системы Windows PE 3.0 представляет собой задачу из двух этапов.
- Редактирование файла winpe.wim (создание сборки)
- Создание загрузчика
Алгоритм создания сборки
Монтирование winpe.wim
Начнем создание сборки с монтирования образа winpe.wim, который содержит в себе систему Windows PE.
Под монтированием подразумевается, что образу в wim-файле ставится в соответствие некоторая папка в файловой системе.
При монтировании все содержимое образа оказывается связанным с папкой, но физически не копируется.
Для монтирования образа используется соответствующая команда
Dism /Mount-Wim /WimFile:<Путь>\winpe.wim /index:<индекс образа в wim-файле> /MountDir:<Путь>\mount
Таким образом, указывается необходимая информация об монтировании образа: имя и путь к wim-файлу, номер образа в файле, путь для монтирования.
Пакеты Windows PE
Windows AIK содержит в себе компоненты, которые используются для расширения функционала Windows PE. Они называются пакетами. Существует множество пакетов, при помощи которых можно создать образ, с которого происходит загрузка при установке ОС, также есть компоненты предназначенные для поддержки доступа к данным, средств восстановления, а также для инструментария WMI.
Имя пакета | Описание |
---|---|
WinPE-FONTSupport- | Дополнительная поддержка шрифтов для следующих языков: ja-JP, ko-KR, zh-CN, zh-HK и zh-TW. |
WinPE-HTA | Поддержка HTML-приложений. Позволяет создавать приложения с графическим интерфейсом пользователя, используя обработчик сценариев Internet Explorer и службы HTML. |
Winpe-LegacySetup | Пакет компонента программы установки Media. Все файлы программы установки из папки \Sources на носителе с Windows. Добавьте этот пакет при обслуживании установки или папки \Sources на носителе с Windows. Он должен добавляться с пакетом компонента программы установки (Setup). Чтобы добавить новый файл Boot.wim на носитель, дополнительно к пакетам Setup и Media добавьте любой дочерний пакет. Данный пакет необходим для поддержки установки Windows Server® 2008 R2. |
WinPE-MDAC | Поддержка компонентов доступа к данным MDAC Microsoft®. Позволяет отправлять запросы к серверам SQL с объектами Active Directory (ADO). Пример использования: создание динамического файла автоматического запуска на основе уникальных системных сведений. |
WinPE-PPPoE | Включает поддержку протокола PPPoE. Позволяет создавать, подключать, отключать и удалять подключения по протоколу PPPoE из среды предустановки Windows. |
WinPE-Scripting | Поддержка сервера сценариев Windows (WSH). Позволяет производить пакетную обработку файлов с помощью объектов сценариев сервера сценариев Windows. |
WinPE-Setup | Пакет компонента программы установки (родительский). Все файлы программы установки из папки \Sources, общей для клиента и сервера. |
WinPE-Setup-Client | Пакет компонента программы установки клиента (дочерний). Файлы фирменной символики клиента для программы установки. Необходимо добавить после пакета компонента программы установки. |
WinPE-Setup-Server | Пакет компонента программы установки сервера (дочерний). Файлы фирменной символики сервера для программы установки. Необходимо добавить после пакета компонента программы установки. |
WinPE-SRT | Пакет компонента среды восстановления Windows. Предоставляет платформу восстановления для автоматической диагностики и восстановления системы, а также создания специализированных решений по восстановлению. |
WinPE-WMI | Поддержка инструментария управления Windows (WMI). Подмножество поставщиков WMI, обеспечивающее минимальную диагностику системы. |
WinPE-WDS-Tools | Пакет средств служб развертывания Windows. Содержит интерфейсы API, предоставляющие многоадресный сценарий с использованием пользовательского клиента служб развертывания Windows и служебную программу создания образов. |
Для добавления пfкета существует команда:
Dism /image:<путь >\mount /Add-Package /PackagePath:
«C:\Program Files\Windows AIK\Tools\PETools\<архитектура>\WinPE_FPs\<имя пакета>.cab»
Профилирование
Профилирование – это процесс уменьшения размера образа за счет неиспользуемых компонентов
Профилирование выполняется следующим образом: сначала оно включается через программу DISM, затем сборка запускается, в ней выполняют требуемые от неё операции, сохраняют профиль, далее сборка подключается через программу DISM и применяется профиль.
Такой метод довольно эффективно снижает размер образа, но его полезно применять в узкой корпоративной среде. В данной инструкции же я создаю УНИВЕРСАЛЬНУЮ сборку, поэтому профилирование будет выполняться несколько иначе.
Оно будет заключаться в РУЧНОМ удалении некоторых компонентов, а именно языковых пакетов, кроме русского и английского.
Также на завершающем этапе будет выполнено экспортирование wim-образа в другой файл с целью очистки индексов устаревших файлов(об этом позднее)
Таким образом, в каталоге mount\Windows\System32 необходимо удалить все каталоги с именами языковых пакетов, кроме ru-ru и en-us.
Добавление компонентов из Windows 7
После добавления пакетов функционал Windows PE расширяется, но недостаточно для выполнения большей части административных задач.
Поэтому я предлагаю расширить возможности путем добавления некоторых компонентов из Windows 7, а именно
- Компоненты Проводника – дают возможность вызвать диалоговое окно «Открыть» из диспетчера задач.
- Nslookup – утилита для тестирования DNS-серверов
- Fc – утилита для сравнения файлов
- Diskcomp – утилита для сравнения дискет
- Diskcopy – утилита для копирования дискет
- Mstsc.exe – программа «Подключение к удаленному рабочему столу», таким образов, Windows PE превращается в «тонкий клиент»
Для этого необходимо установить систему Windows 7 Максимальная (той же архитектуры, что и сборка Windows PE)и SP1 на виртуальную машину. После этого подключите виртуальный жесткий диск от этой ВМ в консоли diskmgmt.msc.
Таким образом, вы будете копировать файлы с этого VHD в сборку
Копируйте указанные в таблице файлы.
Всегда оставляйте для файла то же местоположение, что и на VHD! То есть, если файл находился в каталоге %systemroot%/system32/ru-ru, то вы должны скопировать его в тот же подкаталог каталога mount сборки.
Имя файла | Расположение |
---|---|
Компоненты проводника | |
Explorer.exe | %systemroot% |
Shell32.dll | %systemroot%/system32 |
SHELL.dll | %systemroot%/system32 |
Shellstyle.dll | %systemroot%/system32 |
Nslookup | |
Nslookup.exe | %systemroot%/system32 |
Fc,diskcomp,diskcopy | |
Fc.exe | %systemroot%/system32 |
Diskcomp.exe | %systemroot%/system32 |
Diskcopy.dll | %systemroot%/system32 |
Diskcopy.exe | %systemroot%/system32 |
Клиент RDC | |
Mstsc.exe | %systemroot%/system32 |
Mstscax.dll | %systemroot%/system32 |
Msacm32.dll | %systemroot%/system32 |
d3d10core.dll | %systemroot%/system32 |
d3d10.dll | %systemroot%/system32 |
Dxgi.dll | %systemroot%/system32 |
mcm32.dll.mui | %systemroot%/system32/ru-ru |
mstscax.dll.mui | %systemroot%/system32/ru-ru |
mstsc.exe.mui | %systemroot%/system32/ru-ru |
Либо вы можете скачать все эти файлы отсюда . Содержимое рассортировано по каталогам
Добавление стороннего ПО
Будет добавлено следующие программы и сценарии:
Название ПО | Команда запуска | Описание |
---|---|---|
CPU-Z 1.57 | cpuz | Используется для получения информации об аппаратном обеспечении |
DnsDataView 1.15 | dnsdataview | Используется для получения информации с DNS-серверов |
EasyTerm 4.3 | easyterm | Telnet-клиент |
Everest 5.02 | everest | Используется для получения подробной информации об аппаратном обеспечении и проведения его тестов |
Free Commander 2008 | fcom | Двухпанельный NC-образный файловый менеджер |
FirefoxPortable4.01 | firefoxportable | Портативная версия популярного интернет-браузера |
HDDScan 2.8 | Hddscan | Утилита для проверки качества поверхности жёстких дисков |
HD_Speed | Hdd | Утилита для проверки скорости работы жесткого диска |
ImageX | imagex | Утилита от Microsoft, предназначенная для работы с WIM-файлами |
IpTools 2.58 | ip_tools | Набор сетевых утилит |
Macview 1.13 | macview | Программа для определения производителя устройства по его MAC-адресу |
MemTest | memtest | Утилита для проверки оперативной памяти |
Netagent 3.2 | netagent | Набор сетевых утилит |
NmapW 2.0.0.1 | nmap(консольный интерфейс), nmpw32(графический интерфес) | Мощный сканер портов |
PortScanner 1.0 | portscanner | Сканер портов |
Putty | putty | SSH и Telnet-клиент |
Radmin Viewer 3.4 | radmin | Утилита для подключения к серверной части приложения Radmin |
Recuva 1.19 | recuva | Восстановление удаленных файлов |
Smart Sniffer | smsniff | Простой и удобный сниффер |
Space Monger 1.4 | spacemonger | Анализатор дискового пространства. Работает в удобном графическом режиме |
Sysinternals | —- | Ограниченный набор утилит sysinternal от Марка Руссиновича. Сохранены оригинальные названия программ |
Undelete Plus | undelete | Программа для восстановления удаленных файлов. |
Wdsmcast | wdsmcast | Консольная утилита от Microsoft, предназначенная для работы с WDS-сервером |
WIM2VHD.wsf | cscript “Z:\Program Files\soft\wim2vhd.wsf” | Сценарий для конвертации образов из WIM файлов в файлы виртуального жесткого диска |
WinRar 3.71 | winrar | Многофункциональный архиватор |
Список программ из набора sysinternals(о их назначении вы можете прочитать на сайте http://technet.microsoft.com/ru-ru/sysinternals)
Accesschk
AccessEnum
Clockers
Contig
Dbgview
Diskext
DiskView
Du
Efsdumpo
Handle
Listdlls
Loadord
Ntfsinfo
Procexp
Procfeatures
Procmon
Sdelete
Streams
Strings
Tcpvcon
Tcpview
Volumeid
Whois
Psexec
Psfile
Psgetsid
Psinfo
Pskill
Pslist
Psloggedon
Psloglist
Pspasswd
Psservice
Psshutdown
Pssuspend
Все это ПО должно быть помещено в папку \mount\Program Files\soft\
Скачать подборку можно отсюда .
И помимо этого, я решил изменить стандартный фон «рабочего стола». Я указал этот термин в кавычках, поскольку помимо фонового рисунка он ничего не содержит, вследствие отсутствия графической оболочки.
Фоновое изображение берется из файла winpe.bmp из каталога %systemroot%/system32
Скачать его можно отсюда
Редактирование реестра Windows PE
Как известно, в ОС Windows файлы реестра хранятся в папке %systemroot%/system32/config
Для их редактирования используется редактор реестра regedit.exe
Чтобы подключить реестр сборки Windows PE, необходимо выполнить команду «Подключить куст» из меню файл программы «Редактор реестра». В диалоговом окне указать файл реестра сборки, ввести имя раздела.
После этого можно редактировать любые параметры реестра Windows PE, учитывая ее функциональные ограничения.
Настройка Windows PE
Windows PE может быть настроена так, как необходимо администратору. Для этого существует несколько средств.
Вы можете изменить путь к рабочей зоне и ее размер, настроить автоматически выполняемый командный сценарий и прочее.
Одним из средств настройки является файл Winpeshl.ini
Этот INI-файл предназначен для настройки программы оболочки.
По умолчанию не существует, в качестве оболочки используется cmd.exe
Довольно хорошей идеей является настройка в качестве оболочки файл-менеджера FreeCommander, однако я не буду этого делать, так как на мой взгляд, командно-ориентированный интерфейс ближе и удобнее для администратора, и а графический файл-менеджер нужен лишь для решения объемных задач, когда cmd тормозит работу.
Поэтому я не буду создавать файл winpeshl.ini, однако дам обзор его синтаксиса
Обратите внимание, что если вы настроите собственную программу оболочку, то не будет выполняться файл startnet.cmd! Поэтому для увеличения функциональности среды(поддержка сети и Plug and Play) следует добавить команду wpeinit в раздел LaunchApps.
Вообще, благоразумнее использовать раздел LaunchApps, так как он позволяет использовать параметры командной строки и выполнять несколько команд. При этом не стоит использовать оба раздела одновременно, так как это приведет к неработоспособности конфигурационного файла.
AppPath = %SYSTEMDRIVE%\myshell.exe
%SYSTEMDRIVE%\mydir\application1.exe, {option}
Выход из программы оболочки ведет к перезагрузке ПК.Файл winpeshl.ini должен хранится в каталоге %systemroot%/system32
Для автозапуска приложений либо для автоматизации каких-либо иных действий в Windows PE существует файл startnet.cmd.
По умолчанию содержит строку запуска программы wpeinit, предназначенной для окончательной инициализации среды Windows PE, добавляя сетевые возможности и поддержку самонастраиваемых устройств. Файл startnet.cmd хранится в каталоге %systemroot%/system32 Его синтаксис стандартен для cmd-файлов.
Также при помощи программы DISM вы можете изменить параметры рабочей зоны, т.е. виртуального диска, создаваемого при загрузке Windows PE Иными словами, рабочая зона – это то же самое что и RAM-диск в системе MS-DOS
DISM /image:<путь >\mount /Set-TargetPath:<буква>:\
— устанавливает путь к рабочей зоне. По умолчанию – X:
DISM /image:<путь >\mount /Set-ScratchSpace:64
— установка размера рабочей зоны. По умолчанию — 32 Мб.
Стоит отметить, что в качестве размера рабочей зоны можно задавать значения 32,64,256 и 512
Также существует несколько других команд DISM для работы со смонитрованным образом Windows PE:
Dism /image:<путь>\mount /Get-Packages
– отобразить включенные в образ пакеты
Dism /image:<путь>\mount /Get-Drivers
– отобразить включенные в образ пакеты
Dism /image:<путь>\mount /Get-Intl
– отобразить язык по умолчанию для смонтированного образа
Dism /image:<путь>\mount /Get-PESettings
— отобразить инфомция о настройках Windows PE
Dism /image:<путь >\mount /Add-Driver /driver:<путь к драйверу>
– добавить в образ драйвер
Добавление драйверов
Чтобы добавить в сборку драйвер в более удобном графическом режиме, необходимо воспользоваться Windows Deployment Services
Для этого необходимо:
- Открыть консоль управления WDS
- Выполнить команду «Добавить загрузочный образ» из контекстного меню элемента «Образы загрузки» дерева консоли
- В открывшемся диалоговом окне выбрать образ
- Изменить имя образа и его описание, если требуется. Я всегда указываю в описании назначение конкретной сборки и включенные в нее программные средства
- По окончании процесса добавления образа, из контекстного меню добавленного образа вызвать команду «Добавить пакеты драйверов к образу»
- Задать условия отбора драйверов, выбрать требуемые драйвера(имеется в виду, что они уже добавлены в хранилище)
- По окончании процесса добавления выполнить команду «Экспортировать образ» из контекстного меню данного образа. Указать путь и имя образа, нажать кнопку «Сохранить».
Экспортированный образ будет содержать все добавленные драйвера.
Я рекомендую добавлять драйвера сетевых адаптеров, используемых в вашей организации, особенно если они были выпущены сравнительно недавно. Однако предварительно протестируйте сборку без драйверов. Если сетевые адаптеры «видны» и так, то не стоит добавлять драйвера, увеличивая тем самым размер образа.
Размонтирование и оптимизация образа
После выполнения всех вышеперечисленных этапов вы имеете универсальную сборку Windoiws PE, которую вы можете использовать для различных целей, включая использование в качестве тонкого клиента.
Но для того, чтобы изменения, внесенные в содержимое папки mount были применены к образу, необходимо размонтировать образ с подтверждением изменений.
Это делается при помощи команды
DISM /Unmount-Wim /MountDir:<путь>\mount /Commit
Процесс размонтирования состоит из двух этапов – запись изменений в образ, и очистка папки монтирования.
По окончании процесса редактирования размер wim-файла увеличится, однако его можно оптимизировать, путем обновления индексов содержимого в wim-файле.
Делается это при помощи команды
imagex /export <путь>\winpe.wim 1 <путь>\ISO\sorces\boot.wim «Windows PE 3.0»
Работа с Windows PE
Обратите внимание, что Windows PE отличается от обычной версии Windows в первую очередь, своим командно-ориентированным интерфейсом. Не закрывайте окно командной строки. Это приведет к перезагрузке ПК. Диспетчер задач вы можете вызвать путем ввода команды taskmgr, комбинация Ctrl
Alt
Delete не работает. Отсутствует стандартный проводник. Однако, если вы добавляли все библиотеки, указанные выше, вы можете использовать диалоговое окно «Открыть» из диспетчера задач. В Windows PE отсутствует консоль mmc и оснастки. Поэтому стоит привыкнуть работать в консольном режиме, либо использовать стороннее ПО.
Размер образа, созданного по моей инструкции – 220Мб, если удалить что-то ненужное вам, то образ может поместиться на mini-CD диск. Также вы можете поместить его на загрузочный флэш-накопитель или использовать WDS для удаленной загрузки. Если Windows PE будет использоваться как тонкий клиент, то вы можете спокойно использовать бездисковые рабочие станции для работы.
В Windows PE содержится команда wpeutil, при помощи которой вы можете:
Изменить размер файла подкачки.(по умолчанию, C:\pagefile.sys, 64 Мб)
wpeutil CreatePageFile /path=
/size=<размер>
Обратите внимание, что если в указанном есторасположении уже имеется файл подкачки, и команда создает файл подкачки меньший по размеру, чем существующий, то это может вызвать ошибку
Отключить или включить брандмауэр.
wpeutil DisableFirewall|EnableFirewall
Реинициализировать сеть.
wpeutil InitializeNetwork
Задать раскладку клавиатуры
wpeutil SetKeyboardLayout <код раскладки клавиатуры>
Задать язык
wpeutil SetMuiLanguage <язык>[;<язык>]
Можно задать несколько языков в приоритетном порядке.
Задать региональные настройки пользователя.
wpeutil SetUserLocale <язык>[;<язык>]
Можно задать несколько региональных настроек в приоритетном порядке.
Выключить компьютер
wpeutil shutdown
Перезагрузить компьютер
wpeutil reboot
На этом я закончу рассмотрение команд wpeutil. Более подробную информацию можно получить в справке по этой команд, вызываемой путем ввода wpeutil /?
Итог
На этом процесс создания сборки завершен.
Системные требования для данной сборки минимальны
Процессор – 1 Ггц.
ОЗУ –384 Мб.
Сборку, созданную при написании этой статьи можно скачать отсюда .
Повторюсь, напомнив вам – данная статья – не строгая инструкция. Это основа для дальнейшего творчества. Единственное, чего вы не имеете права делать – это дизассемблировать и переписывать код ядра Windows PE. В остальном, всё зависит от вашей фантазии и запросов. Я продолжаю вести работу над совершенствованием и увеличением функционала с целью расширить область применения среды. Так, на ближайшей повестке дня:
- Разблокировка поддержки WiFI
- Интеграция IE9, дабы не пользоваться Firefox
- Наведение порядка в системных библиотеках, так как многие программы сторонних разработчиков не работают в Windows PE
- Написание удобной графической оболочки, аналогичной GNOME, но удобной и содержащей только то, что необходимо администратору, либо частичная интеграция оболочки explorer.exe
- Интеграция консоли управления mmc.exe
- Создание мультизагрузочного дистрибутива Windows PE, то есть вы сможете выбрать, что загружать – определенную сборку Windows PE,либо же setup.exe для установки полнофункциональной Windows
Добрый день уважаемые читатели блога, наконец дошли руки до написания третьей части статьи, в которой мы создаем свою сборку Windows 10. Если кто читает не сначала, то отправляю вас на первую часть в которой создается . Хочу отметить, что в первой части мы поставили, уже ADK, но так как вышел Redstone и у Microsoft теперь для каждой десятки свой ADK, показываю, где и как скачать нужный, у кого уже стоит, просто пролистайте чуть ниже и переходите к пункту с WinPE.
Во второй части мы с вами обезличили все персональные данные Windows 10 redstone и выключили его в режиме OOBE (out of box experience). Теперь нам с вами нужно из данной виртуальной машины получить wim образ, который мы и будем потом интегрировать в наш дистрибутив.
Для решения данной задачи нам необходим комплект windows adk для windows 10, и некоторые его утилиты.
- WinPE > урезанная версия операционной системы с нее мы будем загружаться.
- ImageX > утилита для захвата образа wim
Вот как это выглядит на схеме, мы загружаемся с загрузочной флешки или ISO с средой WinPE Windows 10, на нашу виртуальную машину (Ту которая выключена, у вас это может быть эталонный компьютер), и с помощью командной строки и утилиты imageX захватываете образ wim. Данный образ wim по сути и будет вся ваша система, которую вы до этого подготовили для создания образа с Windows 10 redstone.
Данный дистрибутив вы можете установить либо на другой компьютер или другую виртуальную машину, не на ту что мы запечатали
И так давайте скачаем с вами ADK для Windows 10. Скачать его можно по ссылке ниже. Учтите, что скачать его нужно именно для своей версии сборки.
https://developer.microsoft.com/ru-ru/windows/hardware/windows-assessment-deployment-kit
Недавно же мы с вами устанавливали windows 10 redstone , у нее версия была 1607.
В итоге вы скачаете маленький файл, полтора мегабайта, это онлайн установщик
Запускаете adksetup.exe и у вас открывается окно мастера установки комплекта windows adk для windows 10. Вы можете изменить каталог установки, либо вообще просто его скачать, для дальнейшего развертывания. (Скачайте комплект средств для развертывания и оценки Windows 10 для установки на другом компьютере) Я оставляю как есть и буду ставить себе на компьютер.
Говорим нет, так как нет необходимости принимать участие в программе Microsoft.
Соглашаемся с лицензионным соглашением ADK и жмем принять.
Выбираем два компонента:
- Средства развертывания
- Среда предустановки Windows PE
Жмем установить. Учтите, что потребуется доступ к интернету и будет скачано, порядка 3,5 гигабайт.
Начнется процесс скачивания ADK.
Все у меня все до качалось, можно теперь поискать ADK у нас в пуске.
Открываем кнопку пуск и находим вот такой пункт Windows kit
- Диспетчер установки
- Среда средств развертывания
Следующим шагом у нас с вами будет создание ISO Образа с Windows PE, с помощью которой мы будем загружаться на эталонном компьютере, для снятия образа операционной системы.
Создаем winpe для windows 10
Наша задача с вами создать ISO образ содержащий среду предустановки winPE для десятки, для этого открываем от имени администратора Среду средств развертывания. Для этого щелкаем правым кликом по ярлыку, далее пункт Дополнительно > Запуск от имени администратора.
Так как у меня будущая сборка имеет архитектуру x64, то я ввожу вот такую команду
copype amd64 c:\winpe
где c:\winpe это создаваемая папка на диске С:, а amd64 указание архитектуры
copype x86 c:\winpe
Для 32 битных систем команда выше, там параметр x86. В результате выполнения нужной команды, у вас в папке winpe, будет скопирована вся структура каталогов, необходимая для создания загрузочного ISO с winPE.
Перейдя на диск C: вы увидите в родительской папке вот такие три папки:
- fwfiles
- media
- mount
У каждой из них свое назначение, об этом мы поговорим чуть ниже.
Теперь нам нужно еще до копировать необходимые утилиты в наш winPE, переходим в папку с установленным ADK.
C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools
Выбираете папку с вашей архитектурой, у меня это amd64. Переходите в папку DISM и копируете из нее вот эти два файла:
- dism.exe
- imagex.exe
Путь для копирования C:\winpe\media
Начиная с этой лекции, мы разберем вопросы касаемо вспомогательных средств развертывания, а именно:
- Среда предустановки Windows PE.
- Утилита подготовки образа к копированию – Sysprep.
- Утилита, предназначенная для снятия образа – ImageX.
Windows Preinstallation Environment (Windows PE) – это минимальная функциональная версия операционной системы Windows XP, Windows Server 2003 и Windows Vista, с ограниченным набором служб, которая позволяет загружать компьютер без установленной Windows с CD или по сети и используется для подготовки компьютера к установке Windows, копирования образов диска с сетевого файлового сервера и инициации установки Windows
. Текущая версия – 3.0.
Среда Windows
PE не предназначена для использования в качестве основной операционной системы на компьютере. Она служит в качестве изолированной среды предустановки и является встроенным элементом других средств установки и восстановления системы, например программы установки Windows
7, служб развертывания Windows
( WDS
) и среды восстановления Windows
( Windows
RE).
Windows
PE – основное средство
компании Майкрософт для загрузки компьютеров без работающей операционной системы, это может быть компьютер
с поврежденной системой или с полным ее отсутствием. Когда компьютер
загружен в среде Windows
PE, его можно подготовить к установке Windows
и запустить программу установки Windows
с сетевого или локального ресурса. Windows
PE можно использовать как многофункциональное средство, позволяющее обслуживать существующую копию Windows
или восстанавливать данные.
Поскольку среда Windows
PE основана на ядре Windows
7, она обладает следующими возможностями:
- Встроенная поддержка файловой системы NTFS 5.x, включая создание динамических томов и управление ими.
- Встроенная поддержка сетей TCP/IP и совместного доступа к файлам
. Данная возможность осуществима только для клиента, таким образом, на основе среды предустановки невозможно создать полноценный сервер. - Встроенная поддержка 32-разрядных (или 64-разрядных) драйверов устройств для Windows, в зависимости от разрядности среды предустановки.
- Встроенная поддержка подмножества программного интерфейса API.
- Дополнительная поддержка инструментария WMI
, компонента MDAC
и HTML-приложений. - Возможность запуска с различных типов носителей, включая компакт-диски, DVD-диски, USB-устройства флэш-памяти (UFD) и серверы службы удаленной установки ( WDS
). - Поддерживаются автономные сеансы Windows PE.
- Образы Windows PE могут обслуживаться вне сети.
- В Windows PE включены все драйверы Hyper-V за исключением драйверов монитора. Это позволяет запускать Windows PE в гипервизоре. В число поддерживаемых возможностей входят поддержка запоминающих устройств, мыши и сетевых адаптеров.
Назначение Windows PE
- Установка Windows 7
. Windows PE запускается при каждой установке Windows 7. Графические средства, осуществляющие сбор сведений о конфигурации во время установки, выполняются в среде Windows PE. Кроме того, отделы информационных технологий могут настраивать и расширять возможности Windows PE в соответствии с их требованиями к развертыванию систем. Windows PE также поддерживает обслуживание образов Windows. К образу среды предустановки можно добавить различные приложения, позволяющие производить различные действия с компьютером еще до начала установки операционной системы. - Устранение неполадок
. Windows PE может применяться для устранения неполадок автоматически или вручную. Например, если Windows 7 не запускается в результате повреждения системного файла, среда Windows PE может автоматически запуститься и загрузить среду восстановления Windows (Windows RE). Кроме того, Windows PE можно запустить вручную, чтобы воспользоваться встроенными или пользовательскими средствами диагностики и устранения неполадок. Среда предустановки используется в некоторых средствах сторонних производителей, позволяющих обслуживать испорченные копии операционной системы. - Восстановление
. С помощью Windows PE изготовители оборудования (OEM) и независимые поставщики программного обеспечения могут создавать настраиваемые, автоматизированные решения для восстановления и перестройки компьютеров с операционной системой Windows 7. Например, пользователи могут запускать свои компьютеры с компакт-диска Windows PE для восстановления системы или из разделов восстановления, чтобы автоматически переформатировать жесткие диски и переустановить операционную систему Windows 7 с исходными драйверами, параметрами и приложениями.
Ограничение Windows PE
Windows
PE представляет собой урезанную версия Windows
7 и имеет следующие ограничения.
- Для минимизации размера среды Windows PE в нее включен только ограниченный набор интерфейсов программирования Win32. В этот набор входят интерфейс ввода-вывода (для дисков и сети) и основные интерфейсы Win32.
- Так как среда предустановки распространяется бесплатно, чтобы предотвратить пиратское использование среды Windows PE в качестве операционной системы, после 72 часов непрерывного использования работа оболочки автоматически прекращается и происходит перезагрузка. Значение этого периода времени изменить нельзя.
- Windows PE не может использоваться в качестве файлового сервера или сервера терминалов, так как удаленный рабочий стол не поддерживается.
- Разрешение имен распределенной файловой системы DFS поддерживается только для изолированных корневых каталогов. Корневые каталоги доменов не поддерживаются. Автономные корни DFS разрешают использование корня DFS, существующего только на локальном компьютере и, следовательно, не использующего Active Directory.
- Поддерживаются способы подключения к файловым серверам по протоколам TCP/IP и NetBIOS через TCP/IP. Другие методы, например сетевой протокол IPX/SPX, не поддерживаются.
- Все изменения в реестре Windows PE во время ее выполнения будут потеряны при следующей перезагрузке компьютера. Постоянные изменения в реестр можно внести только в автономном режиме до запуска Windows PE.
- Буквы дисков присваиваются последовательно, по мере создания разделов в среде Windows PE. Однако при перезагрузке Windows PE все присвоенные буквы дисков возвращаются к порядку по умолчанию.
- Среда Windows PE не поддерживает оболочку Microsoft .NET или среду CLR.
- Windows PE не включает подсистемы Windows on Windows 32 (WOW32), Windows on Windows 64 (WOW64), виртуальную машину DOS ( VDM
), OS/2 и POSIX. - Среда предварительной установки Windows PE может использоваться для настройки и создания разделов на дисках компьютера до начала установки Windows. Если какие-либо жесткие диски преобразуются в динамические диски с помощью программы Diskpart.exe до запуска программы установки Windows, они затем распознаются как внешние в процессе установки операционной системы и все тома на этих жестких дисках будут недоступны.
- Windows PE не поддерживает приложения, заархивированные установщиком Windows (файл.MSI).
- Windows PE не поддерживает 802.1x.
- Windows PE не поддерживает загрузку из целевого размещения, содержащего символы не английского алфавита.
Зависимости Windows PE
Функционирование Windows
PE зависит от ряда технологий Windows
.
- При использовании Windows PE в сети серверы DHCP и DNS могут быть полезны, хотя и не являются обязательными.
- Для загрузки Windows PE из сети необходим сервер служб развертывания Windows.
- Для установки Windows необходимо запустить программу установки Windows (Setup.exe для Windows 7 или Winnt32.exe для Windows Server 2003).
- При автоматизации установки Windows 7 необходимо использовать файл ответов Unattend
.xml.
Процесс загрузки Windows PE
- Выполняется загрузка с использованием загрузочного сектора
определенного носителя. Управление передается программе Bootmgr. Bootmgr извлекает основные сведения загрузки из данных конфигурации загрузки и передает управление программе Winload.exe, содержащейся в Boot.wim. Затем Winload.exe загружает необходимый аппаратно-зависимый уровень ( HAL
) и загружает куст системного реестра и необходимые драйверы загрузки. После завершения загрузки она подготавливает среду для выполнения ядра Ntoskrnl.exe. При запуске Windows PE с носителя, доступного только для чтения, например с компакт-диска, среда Windows PE сохраняет кусты реестра в памяти, позволяя приложениям производить запись в реестр. Все изменения, внесенные в реестр приложениями, не сохраняются для использования в других сеансах Windows PE. - Выполняется программа Ntoskrnl.exe, которая завершает установку среды. Управление передается модулю Session Manager (SMSS).
- Модуль SMSS загружает остальную часть реестра, настраивает среду для запуска подсистемы Win32 (файл Win32k.sys) и ее различных процессов. Модуль SMSS загружает процесс Winlogon, чтобы создать сеанс пользователя, а затем запускает службы, остальные второстепенные драйверы устройств и подсистему безопасности (LSASS).
- Winlogon.exe выполняет установку, основываясь на значении реестра HKLM\SYSTEM\Setup\CmdLine
. Winpeshl.exe запустит %SYSTEMDRIVE%\sources\setup.exe
, если этот файл существует, в противном случае программа Winpeshl.exe будет искать приложение, указанное в файле %SYSTEMROOT%\system32\winpeshl.ini
. Если приложение не указано, будет выполнена команда cmd /k %SYSTEMROOT%\system32\startnet.cmd
. По умолчанию Windows PE содержит файл Startnet.cmd, который запускает программу Wpeinit.exe. Wpeinit.exe загружает сетевые ресурсы и координирует свою работу с сетевыми компонентами, такими как DHCP. - После выполнения Wpeinit.exe отобразится окно командной строки. Это указывает на завершение процесса загрузки Windows PE.