Время на прочтение36 мин
Количество просмотров151K
Сисадмину или мастеру сервисного центра, да и просто в хозяйстве на всякий случай помогает в работе загрузочная флешка с набором полезных программ, и в интернете можно найти полно готовых решений с «кучей» софта на все случаи в жизни. Но каждый, кто пользовался чужими готовыми вариантами 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, или замените *, на имя конкретного файла драйвера.
Всем спасибо!
- What is WinPE creating environment?
- How do I create a preinstallation environment in Windows?
- How do I boot into Windows PE environment?
- What is the purpose of WinPE?
- What is a PE image?
- Do I need Windows PE?
- How do I download Windows PE?
- How do I make a Windows 10 boot disk for PE?
- What is a WinPE ISO?
- What is restart into Windows PE mode?
- How do I enable WinPE?
- How do I install Windows 10 on my PE?
What is WinPE creating environment?
Windows PE is also known as Windows Preinstallation Environment and WinPE. It is a lightweight operating system with limited features. Mostly, it is used to install, deploy, and repair Windows for desktop editions, including Windows 10, Windows Server, and other Windows operating systems.
How do I create a preinstallation environment in Windows?
Create a WinPE ISO, DVD, or CD
- Use MakeWinPEMedia with the /ISO option to create an ISO file containing the Windows PE files: …
- Optional Burn a DVD or CD: In Windows Explorer, right-click the ISO file, and select Burn disc image > Burn, and follow the prompts.
How do I boot into Windows PE environment?
Boot to Windows PE
- Connect the device (internal or external USB hard drive) into the PC you want to work on.
- Turn on the PC, and use the boot menus to select the Windows PE drive. …
- Once WinPE is booted, you can identify the drive letters with a script or with diskpart.
What is the purpose of WinPE?
Windows PE (WinPE) for Windows 10 is a small operating system used to install, deploy, and repair Windows 10 for desktop editions (Home, Pro, Enterprise, and Education), Windows Server, and other Windows operating systems. From Windows PE, you can: Set up your hard drive before installing Windows.
What is a PE image?
This specification describes the structure of executable (image) files and object files under the Windows family of operating systems. These files are referred to as Portable Executable (PE) and Common Object File Format (COFF) files, respectively.
Do I need Windows PE?
Since Windows PE is not a standalone operating system, there are many things it can’t do. In fact, this lightweight operating system is ideal only for installation, deployment, and recovery, and not for the other tasks of an operating system. It can’t even be used as a thin client or an embedded operating system.
How do I download Windows PE?
How to download and install WinPE tool?
- Download and run adksetup.exe as administrator. …
- Select «Install the Windows Assessment and Deployment kit to this computer» option.
- Under «Select the features you want to install» enable the two options below: …
- Click Install.
- Download and run adkwinpesetup.exe as administrator.
How do I make a Windows 10 boot disk for PE?
Step 1: Download and install the iSumsoft Cloner tool on a Window computer. Step 2: Insert a USB flash disk to the computer and run this tool. Step 3: Click on Make Boot Disk in the upper right corner of this program. Then select the «Create PE in current system environment» option and click OK.
What is a WinPE ISO?
The Windows Preinstallation Environment (WinPE) is a stripped-down operating system that is used to deploy Windows 10 or for the recovery environment. Microsoft does not make it available as an ISO download; rather, you have to create the bootable media yourself. Recent Posts.
What is restart into Windows PE mode?
Windows PE Mode
When AOMEI Partition Assistant needs to reboot computer into WindowsPE (WinPE) mode to perform operations. it will create WinPE bootable iso based on system’s recovery environment, and then reboot into WinPE environments. After operations are completed, it will reboot into Windows by default.
How do I enable WinPE?
Click System Center Configuration Manager > Site Database > Computer Management > Operating System Deployment > Boot Images. Right-click the boot image and click Properties. Click Windows PE. Select the checkbox forEnable command support (testing only).
How do I install Windows 10 on my PE?
Once downloaded, you can integrate all versions of WinPE into AIO Boot.
- Run AIOCreator.exe.
- Switch to the Integration tab, select Windows, then select WinPE 7/8.1/10 in the drop-down list.
- Select the . wim files you downloaded in turn, click OK to integrate.
- Boot into WinPE versions from the WinPE & Setup menu.
Как создать LiveCD? Для этого необходимо образ автономной среды с программным обеспечением записать на флешку. Либо иной съёмный носитель – внешний жёсткий диск или оптический диск, если у компьютера есть DVD-привод. Сам же образ можно скачать в Интернете, если нужно готовое решение. А можно создать LiveCD самостоятельно, под свои нужды. Рассмотрим детально все эти вопросы.
Содержание
- Что такое LiveCD
- LiveCD на базе Linux
- LiveCD на базе WinPE
- Как создать WinPE с помощью AOMEI PE Builder
- Как создать WinPE с помощью Win10XPE
Что такое LiveCD
LiveCD, он же LiveDisk, он же LiveUSB – это внешний загрузочный носитель с автономно работающей программной средой и программным обеспечением. Эта среда являет собой урезанную версию операционной системы, только с базовыми возможностями. Есть LiveCD на базе Linux, и есть на базе Windows.
LiveCD используются тогда, когда работа операционной системы компьютера невозможна:
- Для восстановления операционной системы (при повреждении загрузчика или системных файлов, при проблемах с драйверами, для отката из бэкапа);
- Для разметки диска;
- Для удаления вирусов;
- Для извлечения данных в аварийных случаях;
- Для выполнения любых иных операций, которые невозможны в среде работающей операционной системы;
- Для использования запароленного компьютера или без жёсткого диска.
LiveCD имеют разное назначение. Одни узкопрофильные: предусматривают в своём составе основные нативные функции операционной системы и программы для решения конкретных задач. Например, LiveCD антивирусов, менеджеров дисков, программ для резервного копирования. Такие LiveCD обычно создаются средствами этих программ, либо их образы могут предоставляться на сайтах программ.
Другие LiveCD универсальные: содержат программы для решения всевозможных задач, могут иметь расширенные возможности самой операционной системы. Универсальные LiveCD более предпочтительны, они несут в себе решения для непредвиденных и аварийных случаев. И далее мы будем говорить именно о них.
LiveCD на базе Linux
LiveCD на базе Linux получить просто, они поставляются вместе с процессом установки этой операционной системы. Перед установкой Linux её можно опробовать.
И использовать некоторые её возможности без установки, прямо с установочного носителя. При этом сможем не только использовать то, что входит в дистрибутив Linux, но также установить программы из центра приложений.
Чтобы получить такой LiveCD, нужно создать установочный носитель с Ubuntu, Linux Mint, Debian или другим дистрибутивом.
Есть LiveCD на базе Linux отдельно от дистрибутива. Самые известные – Knoppix и Kali Linux. Это поддерживаемые проекты, у них есть свои сайты, где можно скачать эти LiveCD, т.е. скачать их ISO-образы для записи на внешний носитель.
LiveCD на базе WinPE
Облегчённая Windows, на базе которой функционируют LiveCD, называется Windows PE, она же WinPE. WinPE бывают разных версий и являют собой урезанные варианты той или иной версии Windows — 7, 8.1, 10, 11.
Официально получить WinPE непросто. Предусмотренные компанией Microsoft для создания образа WinPE инструменты рассчитаны на разработчиков. А готовый WinPE самой компании Microsoft MSDaRT, во-первых, содержит скудный перечень инструментов. Во-вторых, легально доступен только для корпоративных пользователей по подписке.
Оптимальный вариант – неофициальное получение таких LiveCD. Можно скачать Windows PE из числа готовых универсальных сборок в виде ISO-образа для записи на носитель. Сторонние сборки WinPE нечасто поставляются в рамках развиваемых проектов со своими сайтами, где можно скачать образы.
Редкие исключения – AdminPE и WinPE 10-8 Sergei Strelec. Это мегафункциональные сборки с программами на все случаи жизни. И со всевозможными драйверами, обеспечивающими запуск WinPE на любом компьютере.
Чаще же сборки WinPE являют собой единичные раздачи, выложенные на торрент-трекерах. Собственно, там и можно скачать эти WinPE.
WinPE не лицензируется, как Windows. Но в сторонних сборках WinPE часто присутствует пиратский софт. А это, соответственно, риски столкнуться с юридической ответственностью за нарушение лицензирования как минимум при профессиональном использовании таких LiveCD.
Тогда как LiveCD на базе Linux, имея в своём составе, как правило, свободное программное обеспечение, в этом плане не несут никакой угрозы. Но для восстановления Windows и работы многих программ нужна среда именно WinPE.
Чтобы получить LiveCD на базе WinPE без пиратского софта, его можно создать самостоятельно. Т.е. создать свою сборку WinPE, укомплектовав её нужными программами, бесплатными или такими, для которых у нас есть лицензия.
Как создать WinPE для своих нужд? Для этого есть программы – конструкторы WinPE. Они, в отличие от официальных инструментов Microsoft, просты в использовании, рассчитаны на обычных пользователей. Рассмотрим далее, как создать WinPE с помощью двух таких конструкторов.
Как создать WinPE с помощью AOMEI PE Builder
Простейший конструктор WinPE – программа AOMEI PE Builder. В состав такой сборки WinPE по умолчанию входят менеджер дисков и программа для резервного копирования AOMEI.
В сборку по желанию можно включить другие программы из числа бесплатных. И можно интегрировать свои портативные программы.
AOMEI PE Builder создаёт сильно урезанную среду WinPE. В ней невозможна инсталляция программ. И не все портативные программы смогут запуститься. Некоторым для работы может не хватать определённых системных файлов.
Так что после создания LiveCD на базе такой сборки WinPE нужно обязательно его протестировать, все ли программы работают.
Как создать WinPE конструктором AOMEI PE Builder? Запускаем программу, жмём «Next».
Выбираем в большинстве случаев «Create 64-bit version of Windows PE».
Далее смотрим, какие программы могут быть включены в сборку. И галочкой отмечаем нужные. Если необходимо добавить какие-то специфические драйверы, добавляем их с помощью кнопки «Add Drivers». Для добавления своих программ жмём «Add Files».
Жмём «Add Folder».
И указываем путь к папке с портативной версией программы. В нашем примере это программа для восстановления данных RS Partition Recovery. Для получения её портативной версии можно скопировать папку с установленной программой на диске С по пути:
C:\Program Files\Recovery Software
По этому же принципу добавляем другие программы. Жмём «Ок».
Жмём «Next».
И либо записываем сборку сразу на флешку или оптический диск, либо создаём её ISO-образ.
В среде WinPE все добавленные программы будут размещаться в папке на рабочем столе «UserTools». Из этой папки и запускаем нужные нам программы.
Если WinPE записывается на флешку или внешний диск, свои портативные программы можно добавлять не только таким образом в процессе создания WinPE. Можно создать в корне флешки или внешнего диска свою какую-то папку и помещать туда папки с портативными программами, как на обычный внешний носитель. И из папки в корне носителя запускать эти программы.
Увы, но нужная нам программа RS Partition Recovery не смогла запуститься в среде WinPE, созданного AOMEI PE Builder. И нам пришлось искать более эффективное решение.
Как создать WinPE с помощью Win10XPE
Таким эффективным решением стал конструктор Win10XPE. Это бесплатная программа, развиваемая в рамках проекта энтузиастов. И она с большими возможностями. Реализует более полноценную среду WinPE. И предусматривает некоторые интересные возможности.
В созданную средствами Win10XPE сборку WinPE можно интегрировать свои портативные программы. Но что интересно, при необходимости такая сборка может предусматривать ещё и установку Windows-программ. Это решение для тех случаев, если у нужных программ нет портативных версий.
Ещё такая сборка при необходимости может содержать процесс установки Windows. Если средствами WinPE нам не удастся реанимировать Windows, можно тут же переустановить операционную систему, скачав в Интернете её установочный ISO-образ.
Как создать WinPE конструктором Win10XPE? Для начала скачиваем саму программу Win10XPE.
Далее скачиваем ISO-образ Windows 10. Это должен быть образ именно Windows 10, не какой-либо иной версии Windows. И это должен быть чистый образ от Microsoft, не кастомная сборка с какими-то вмешательствами. Актуальный чистый ISO-образ установки Windows 10 можно скачать на сайте Microsoft.
Лайфхак. Чтобы скачать ISO-образ Windows с сайта Microsoft, нужно скачала загрузить утилиту Media Creation Tool. Именно она создаёт этот ISO-образ. Но можно поступить проще и скачать ISO-образ быстрее – скачать его непосредственно на сайте Microsoft.
Для этого на странице загрузки Windows 10 жмём клавишу F12 для входа в режим разработчика браузера. Выбираем для эмуляции страницы какой-нибудь планшет от Apple. Жмём клавишу F5 для обновления страницы и скачиваем ISO-образ Windows.
Указав нужный язык и разрядность.
Скачанный ISO-образ двойным кликом подключаем для отображения в проводнике. И всё его содержимое копируем в предварительно созданную папку в корне диска С. Туда же в корень диска С распаковываем архив с программой Win10XPE. В итоге у нас в корне диска С должны быть две папки, необходимые для создания WinPE – с дистрибутивом Windows 10 и программой Win10XPE.
Заходим в папку Win10XPE. Прежде обратим внимание на документ с мануалом, как пользоваться Win10XPE. Он содержит детальное описание всех возможностей этой программы. Для продвинутого использования Win10XPE необходимо обращаться именно к этому мануалу. Мы же рассмотрим лишь основные моменты, как создать WinPE с помощью Win10XPE. Запускаем программу.
В разделе «Win10XPE» кликаем «Select the Windows 10 Source Folder» и указываем путь к папке с распакованным дистрибутивом Windows 10 в корне диска С. Можно ещё выбрать редакцию Windows, из которой будет создан WinPE, но по умолчанию будет выбрана оптимальная редакция Pro.
Раздел «Build Core» самый значимый. Здесь настраивается ядро WinPE – все системные компоненты и драйверы, которые будут включены в сборку. От конфигурации ядра будет зависеть производительность сборки WinPE.
Внизу в столбце слева отмечаем галочками системные компоненты, включаемые в WinPE. Здесь есть программные платформы, которые могут быть принципиально необходимы для работы некоторых Windows-программ. Включаем эти компоненты установкой их галочки.
Если для работы ваших программ принципиально не нужны предлагаемые здесь компоненты, можно оставить всё по умолчанию. Только обратим внимание на пункт «Msi Windows Installer», это компонент, отвечающий за возможность установки программ в среду WinPE. И ещё обратим внимание на пункт «Windows Installer Files (Setup.exe)», это интеграция в WinPE процесса установки Windows.
В столбце справа можем персонализировать сборку WinPE и установить свои обои рабочего стола, звук запуска и пользовательский лого. При клике на опции этих возможностей откроется папка с содержанием контент-файлов. Нам нужно заменить исходные файлы на свои, но под такими же названиями.
Более важный момент – интеграция в WinPE драйверов. Если для компьютера, где будет запускаться сборка, нужны драйверы для специфических устройств, ставим галочку опции «Integrate Drivers». И добавляем эти драйверы в папку, открывающуюся при нажатии «Copy Drivers Here».
При необходимости драйверы можно извлечь из текущей Windows, для этого используем кнопку «Export».
В разделе «Apps» нам предлагаются программы, которые могут быть включены в сборку WinPE. Всё это бесплатные программы. Те, что нам нужны, отмечаем галочкой. Эти программы можно настроить – выбрать их язык, функционал, добавить ярлык на рабочий стол WinPE и т.п.
Один из важнейших моментов – как включить свои портативные программы в сборку WinPE? Их можно потом добавить на флешку или внешний диск. А можно изначально включить в ISO-образ и поместить папки этих программ в корень образа. И, соответственно, запускать их в среде WinPE с корня любого загрузочного носителя.
Точно так же поступаем с инсталляторами программ, для которых нет портативных версий. Собираем все инсталляторы в папку и добавляем её в корень образа.
Для этого в разделе «Create ISO» отмечаем галочкой опцию «Indude Files In ISO Root». Жмём «Open ISO Root Folders».
В открывшуюся папку копируем папки портативных программ и папки с инсталляторами. В нашем случае это программа для восстановления данных RS Partition Recovery. И её аналог с поддержкой RAID-массивов — RS RAID Retrieve. Их портативные версии можем получить, скопировав папки с установленными программами на диске С по пути:
C:\Program Files\Recovery Software
Редактирование сборки WinPE завершено. Создаём её ISO-образ. Жмём кнопку «Play».
Если, в процессе создания образа, возникает ошибка «Some required programs are missing in the Tools Folder«, убедитесь, что существует файл GWT.exe в папке «\Win10XPE\Projects\Tools\». Он обычно блокируется антивирусными программами, например Windows Defender.
В процессе создания образа Win10XPE попросит загрузить файлы Windows ADK, это инструмент Microsoft, который используется для создания WinPE. Отвечаем «Yes».
По итогу создания ISO-образа получаем его в папке Win10XPE в корне диска С.
Напоследок обратим внимание ещё на некоторые возможности Win10XPE. В конструктор включены портативные утилиты для создания загрузочной флешки. В разделе «Create ISO» сможем запустить либо USB7ice, либо Rufus. И с их помощью записать созданный нами ISO-образ WinPE на флешку.
В итоге получим среду WinPE с необходимым для разных задач штатным функционалом Windows 10. И с нужными нам программами.
Программы в среде WinPE устанавливаем точно так же, как в обычной Windows – запускаем инсталлятор и следуем процессу установки.
Часто задаваемые вопросы
When it comes to troubleshooting, the Windows operating system has several built-in troubleshooters and multiple command-line utilities to get things up and running again. But what to do when you are unable to boot into Windows entirely? In that case, you can boot into safe mode or run the Windows Preinstallation Environment (WinPE).
The WinPE, or WindowsPE, is a command-line-based lightweight version of a Windows environment that runs on your RAM and does not require a hard drive. Its base version needs only 512 MBs of RAM to run, which can go up depending on the optional features you add.
That said, Microsoft does not provide the Windows Preinstallation Environment on a plate. Instead, you must create it yourself for the specific type of Windows version you want to troubleshoot or perform any actions on.
Today, we are going to give you the complete details and guidelines on what WinPE is, and how to create a bootable USB flash drive so you can become an IT professional.
Table of Contents
What is Windows Preinstallation Environment
The Windows Preinstallation Environment, or WindowsPE, is a miniature version of an executable Windows which runs on your system’s memory. It can be used to troubleshoot, deploy, and service a Windows image without booting into the Windows itself.
Note that WindowsPE provides a command-line interface, so it is only useful if you know the cmdlets to put into the Command Line Interface (CLI) to perform your desired action.
The Windows Preinstallation Environment looks like this:
Uses of Windows Preinstallation Environment (WinPE)
The WinPE is not only used for troubleshooting purposes but also provides other functionality. It can be used for the following list of actions:
- Set up the hard drive before installing Windows.
- Install Windows through apps or scripts from a network or a local drive.
- Capture and apply Windows images.
- Modify the Windows operating system while it’s not running.
- Set up automatic recovery tools.
- Recover data from unbootable devices.
- Add your own custom shell or GUI to automate the above-mentioned tasks.
Let us now continue to show you how to create a Windows Preinstallation Environment and then boot from it.
How to Create Windows Preinstallation Environment (WinPE)
Before we begin creating a WindowsPE bootable USB drive, there are a few things you might need beforehand:
- A USB drive – will be formatted and all data will be lost.
- Another PC (technician PC) in case you are unable to boot into your Windows PC that you want to troubleshoot. Note that the technician PC needs to be of the same Windows version.
- An active internet connection on the PC which will be used to create the WinPE bootable flash drive to perform downloads where required.
Ensure that you have these things before we proceed.
Furthermore, creating a bootable WinPE drive requires a few steps, some of which are optional. We have divided these steps into the following headings to make things less complicated:
- Install Windows Assessment and Deployment Kit (ADK) and WinPE Add-on.
- Create WinPE working files.
- (Optional) Customize WinPE to add optional features, like language packs, etc. This requires some additional steps:
- Mount boot.wim file.
- Add features.
- Commit and dismount the boot.wim file.
- Create a bootable WinPE USB flash drive.
- (Conditional) Convert USB to MBR (if in GPT) and format it.
- Install WinPE to the USB drive.
Note that these steps need to be performed in the chronological order given in the list above.
Install Windows ADK and WinPE Add-On
Firstly, you will need to install Windows Assessment and Deployment Kit (ADK) and WinPE Add-on on the computer you are using to create the WinPE USB flash drive. These are a collection of tools and features that you can combine to prepare, assess and launch image-based large-scale Windows deployments and perform other functions.
Note: If you are using Windows 10 version 1803 or earlier, then you only need to install Windows ADK since it already contains WinPE. However, if you are creating WinPE for Windows 10 version 1809 or later (including Windows 11), then you must install the WinPE Add-on separately, as given in the guide below
To confirm your Windows version, type in winver in the Run Command box.
Follow these steps to install Windows ADK and WinPE Add-on:
-
Start by downloading Windows ADK and WinPE Add-on for your Windows version from the direct download links given in this post.
-
When downloaded, run the “adksetup” file.
-
The Windows ADK wizard will now launch. On the first screen, select “Install the Windows Assessment and Deployment Kit to this computer” and click Next.
Install ADK for this computer -
Now select your privacy preference and click Next.
Select privacy terms -
Accept the license agreement.
Accept license agreement -
Now select the “Deployment Tools” feature (while unchecking all others since they are not required) and click Install.
Install ADK deployment tools -
The selected feature will now install. When it does, close the wizard.
Close ADK installer -
Now run the “adkwinpesetup” file for WinPE that you downloaded earlier.
-
The WinPE setup will now run. Select “Install the Windows Assessment and Deployment Kit Windows Preinstallation Environment Add-ons to this computer” and click Next.
Install WinPE Addons on current computer -
Now select your privacy preference and click Next.
Select privacy terms -
Accept the license agreement.
Accept license agreement -
Now select the “Windows Preinstallation Environment (Windows PE)” feature and click Install.
Install WinPE -
The selected feature will now install. When it does, close the wizard.
Close WinPE installer
You have now successfully installed Windows ADK and the WindowsPE Add-on. It is now to move on to the next part of the process.
Create Windows Preinstallation Environment Working Files
You must now create a working set of WindowsPE files on your PC. These files can be considered a copy of the same OS you are creating the bootable WinPE USB flash drive on.
Note: These files are later used to create the bootable WindowsPE USB drive. If needed, these can also be customized to add more features to the WinPE.
To create these working files, the CopyPE cmdlet is used in Deployment and Imaging Tools Environment having the following syntax:
Copype [Architecture] [WorkingFilesDirectory]
Note that [Architecture] and [WorkingFilesDirectory] are variables that need to be changed in accordance with what bit architecture your PC has and where you wish to create the WinPE working files directory/folder, respectively. Here are the details for these variables:
-
[Architecture]
Possible values:
- amd64 – For AMD and Intel’s 64-bit BIOS or 64-bit UEFI-based systems.
- x86 – For 32-bit UEFI, 32-bit BIOS, or 64-bit BIOS-based systems.
- arm – for 32-bit ARM-based systems only.
- arm64 – for 64-bit ARM-based systems only.
-
[WorkingFilesDirectory]
This is the complete path to a folder inside which you will create the working files.
Note: This directory cannot exist beforehand or the process will end here. This needs to be a new folder that will be automatically created after executing the CopyPE command.
Now use these steps to create the WindowsPE working files:
-
Search for Deployment and Imaging Tools Environment in the search box or the Start menu, right-click it, and then click Run as administrator.
Run Deployment and Imaging Tools as admin -
Now run the CopyPE cmdlet as discussed above while entering the correct values.
CopyPE [Architecture] [WorkingFilesDirectory]
Since we have Intel’s 64-bit architecture, we entered “amd64” and created the working files directory in the root of the C drive.
Create WindowsPE working files
This should now successfully create the working files inside the given directly in the cmdlet. You can use File Explorer to confirm this.
You should find the following 3 directories inside that folder:
- fwfiles
- media
- mount
You may now skip the next step of customizing the WindowsPE and proceed to create a bootable WindowsPE USB drive or add optional components if needed.
Customize Windows Preinstallation Environment
Before proceeding to create a bootable WindowsPE, you can make customizations to it. Of course, this is optional.
The WindowsPE is created in the English language by default. However, you can add optional components to it, such as language packs, Windows updates, PowerShell tools, etc.
This can be achieved by mounting the boot.wim file which is located at the following location inside the WindowsPE working files directory, and then making changes to it:
[WorkingFilesDirectory]\media\sources
Moreover, the .CAB files needed to install these optional components and languages are now available on your computer that were downloaded when you installed the “WindowsPE Add-on” for ADK earlier. There are available at the following path:
C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs
Note: “Amd64” can also be replaced with “arm64” if it fits your architecture.
Now follow these steps to make customizations to the WindowsPE:
-
Create a new directory using either File Explorer, an elevated Command Prompt, or the Deployment and Imaging Tools Environment CLI. Use the following cmdlet to create a new directory/folder using either CLIs:
Replace [PathToMountDirectory] with the complete path and folder name where you want to create the directory.
md [PathToMountDirectory]
Create new directory to mount Boot wim -
Now use the following cmdlet in either Command Prompt or Deployment and Imaging Tools Environment to mount the boot.wim file:
Replace PathToBootFile with the complete path to the boot.wim file (as discussed above) and PathToMountDirectory with the complete path to the newly-created directory in the last step above.
DISM /Mount-Wim /WimFile:"PathToBootFile.wim" /Index:1 /MountDir:"PathToMountDirectory"
Mount boot.wim file -
The boot.wim file will now be mounted successfully. It is now time to make changes to it as you need. To add the optional components or language packs, use this command:
Replace PathToMountDirectory where the boot.wim file is now mounted, and PathToCabFile with the complete path of the CAB file for the optional component you wish to install.
DISM /Image:"PathToMountDirectory" /Add-Package /PackagePath="PathToCabFile.CAB"
In this example, we have installed the French language pack.
Add language pack to WinPE You can repeat this step to add more optional features.
-
When you have made the changes, it is then time to save the changes and unmount the wim file. To do so, run the following cmdlet:
Replace PathToMountDirectory where the boot.wim file is mounted.
DISM /Unmount-wim /MountDir:"PathToMountDirectory" /Commit
Commit and dismount boot wim
You have now successfully made the optional changes to the Windows Preinstallation Environment which have been saved. It is now time to use the updated WindowsPE working files to make a bootable USB drive.
Create Bootable Windows Preinstallation Environment USB Flash Drive
Now, you must create a bootable USB drive using the WindowsPE working files. This is done using the MakeWinPEMEdia cmdlet, which has the following syntax:
MakeWinPEMedia [/UFD | /ISO] [/f] [WorkingFilesDirectory] [USBDriveLetter]:
The /UFD switch is used to specify a USB flash drive, whereas the /ISO switch identifies a .ISO file. You can only choose one. the /F switch is optional and used to suppress any confirmation messages.
Before we do this, we must first format the USB flash drive. Although the MakeWinPEMedia cmdlet automatically formats the drive, it often runs into errors when it is in the GPT format, and not in MBR. Therefore, we recommend that you preformat the USB flash drive in MBR format.
Follow these steps to format the USB flash drive to avoid running into errors, and then install the WindowsPE onto the USB:
Note: The following can be performed in either an elevated Command Prompt of the Deployment and Imaging Tools Environment.
-
Plug in the USB flash drive and then enter the drive management tool by running the following command:
diskpart
-
Now run the following cmdlet to list down the details of the available disks:
list disk
-
Now select the USB disk (by matching its size) by entering its disk number instead of the hash symbol in this cmdlet:
select disk #
Select disk to format -
Now run the following cmdlets in the chronological order given to convert and format the USB drive:
Replace RandomName with any name for the volume and USBDriveLetter with the drive letter that you want to assign to the USB flash drive.
clean convert MBR create partition primary format fs=fat32 quick label="RandomName" assign letter=USBDriveLetter exit
Convert disk to MBR and format The USB flash drive is now formatted. It is now time to install the WindowsPE onto the USB.
-
Run the following cmdlet while replacing the necessary variables with the correct values to install the WindowsPE on the USB using the WinPE working files.
Replace [WorkingFilesDirectory] with the complete math of the WindowsPE working files, and [USBDriveLetter] with the drive letter that you assigned to the USB flash drive while formatting it.
MakeWinPEMedia /UFD [WorkingFilesDirectory] [USBDriveLetter]:
Create bootable USB for WinPE If you did not use the /F switch, then you will be asked to confirm the formatting of the USB drive. Enter Y.
This concludes the process of creating a Windows Preinstallation Environment successfully. Now, all that is left is to boot from it.
You can now boot into the WindowsPE by attaching it to the computer and then using the “One Time Boot Menu” to boot from the USB.
Limitations of Windows Preinstallation Environment
As you would already know by now, WindowsPE is not an alternative to regular Windows installation. Not only does it lack many of the mainstream features, but it is also programmed to reboot automatically after 72 hours so that it cannot be used in production environments.
The rebooting duration cannot be changed, and all data is lost after it reboots, which means that you have to start over all the tasks.
Moreover, WindowsPE doesn’t support the following:
- File server or Terminal Server use.
- Joining a network domain.
- Connecting to an IPv4 network from Windows PE on an IPv6 network.
- Remote Desktop.
- .MSI installation files.
- Booting from a path that contains non-English characters.
- Running 64-bit apps on the 32-bit version of WindowsPE.
- Adding bundled app packages through DISM (.appxbundle packages).
Closing Thoughts
The method of creating Windows 11 or Windows 10 Preinstallation Environment is the same. However, if you wish to launch Windows Setup in WindowsPE for Windows 11, you must install the WinPE-WMI and WinPE-SecureSetup optional components, otherwise, you may encounter errors stating that you do not meet the minimum hardware requirements.
That said, having a USB flash drive ready with WinPE can be a blessing since you do not know when your system might crash. You can also use the same USB drive to store backups of your OS (using Backup and Restore) alongside WinPE and then use those images to restore your working OS image.
Если, друзья, нам нужен WinPE — LiveDisk на базе урезанной среды Windows, чтобы решить какие-то задачи, когда нужен доступ к компьютеру вне среды установленной на диске Windows, с внешнего носителя, можем использовать выложенные в Интернете, в частности, на торрент-трекерах готовые сборки WinPE. Есть много толковых с разнообразным инструментарием на все случаи жизни: WinPE 11-10-8 Sergei Strelec, AdminPE, 2k10 и прочие. Но что, если нужен специфический WinPE — с редким специальным каким-нибудь софтом, без пиратского или лишнего софта в составе? В этой публикации рассмотрим, как создать собственный WinPE под свои задачи с помощью конструктора Win10XPE.
Итак, друзья, собственный WinPE. В качестве такого можно использовать упомянутый WinPE 11-10-8 Sergei Strelec. В этом WinPE запускаются портативные программы. Их можно положить в отдельную папку в корне загрузочной флешки после записи на неё образа WinPE. В этом WinPE даже можно установить обычные программы так же, как в обычной среде Windows. Но, конечно, работать эти программы будут только в течение текущего сеанса.
Если вам принципиально нужен WinPE только с легальным бесплатным софтом, например, вы оказываете профессиональные услуги компьютерного мастера и хотите обезопасить себя на случай проверочной закупки вашей услуги компетентными органами, можете после записи WinPE 11-10-8 Sergei Strelec на флешку проверить её антивирусом. Он удалит файлы активации платных программ, и они будут либо как триал-версии, либо не будут запускаться. Можно вообще удалить с загрузочной флешки с этим WinPE платные программы.
Но, конечно, лучше создать собственный WinPE, где будут только бесплатные программы или с приобретённой нами лицензией. Сам WinPE, кстати, нелицензируемый, его можно использовать свободно. И в случае проверочной закупки нам не придётся доказывать, что да, мы взяли WinPE с пиратским софтом, но мы убрали этот софт и работаем только честно.
Как создать собственный WinPE? Это можно сделать бесплатными средствами.
Самый простой способ – программа-конструктор AOMEI PE Builder. Предусматривает небольшой перечь бесплатных программ, позволяет добавлять свои портативные программы. Но этот конструктор создаёт ограниченный WinPE, без определённых системных компонентов. Из-за чего в таком WinPE будут запускаться не все портативные Windows-программы.
Полноценный WinPE можно создать официальным способом, предусмотренным самой компанией Microsoft – средствами развёртывания Windows и ADK. Но это сложный способ, рассчитан на разработчиков.
Золотая середина между этими способами – конструктор Win10XPE. Не прост в принципе, но гораздо проще способа от Microsoft. Локализация только на английском. Позволяет настроить WinPE под разные задачи. С помощью этого конструктора можем создать WinPE урезанным или полноценным, со всеми необходимыми системными компонентами для запуска портативных программ и установки обычных. Win10XPE предусматривает интеграцию бесплатного софта, среды восстановления Windows, процесса установки Windows.
Друзья, давайте рассмотрим, как с помощью Win10XPE создать собственный WinPE.
Конструктор Win10XPE являет собой пакет ПО для создания WinPE. Скачать этот пакет можно бесплатно на сайте проекта Win10XPE. На этом сайте предлагается старая стабильная версия конструктора, она создаёт WinPE только на базе Windows 10 (начиная с версии 1709). Работать с самим конструктором при этом можно в любой актуальной версии Windows. А на GitHub есть обновлённая версия Win10XPE, поддерживающая создание Win10XPE на базе дистрибутивов и Windows 10, и Windows 11. Если хотите, друзья, используйте обновлённую версию Win10XPE. И попробуйте создать WinPE на базе Windows 11. Мы же будем работать со старой версией Win10XPE и создадим WinPE на базе Windows 10.
Примечание: друзья, Google Chrome и прочие браузеры могут расценить файл архива Win10XPE как опасный и заблокировать загрузку. Это ложное срабатывание, никакой опасности архив Win10XPE не несёт. Необходимо просто разблокировать загрузку файла. Детали в статье «Google Chrome заблокировал файл как опасный».
Распаковываем скачанный архив Win10XPE в корень какого-то из логических дисков компьютера.
Теперь нам нужен дистрибутив Windows 10. И следующим шагом мы скачиваем ISO-образ Windows 10. Если вы из стран с геоблокировкой ресурсов компании Microsoft, используйте средства обхода блокировки (VPN или прокси). ISO-образ Windows 10 двойным кликом подключаем для отображения его содержимого. Содержимое копируем в папку.
Можем назвать эту папку «Win10» и разместить её там же, где у нас распакованный Win10XPE.
Заходим в папку Win10XPE. Здесь обратим внимание на PDF-документ, это мануал по работе с конструктором. В этом документе, друзья, найдёте детальные руководства по использованию отдельных возможностей Win10XPE. Мы же давайте разберёмся с основными моментами в его работе. Запускаем конструктор.
И шаг за шагом вносим основные настройки. Что это за настройки?
На панели слева кликаем главный раздел «Win10XPE». Справа кликаем кнопку обзора и указываем путь к папке с извлечённым ISO-образом Windows 10.
Когда папка добавлена, смотрим, чтобы была выбрана редакция Professional. Чтобы WinPE не получился на базе ограниченной редакции Home.
Далее на панели слева кликаем раздел «Build Core». Здесь, друзья, настраивается много чего: оформление среды WinPE, часовой пояс, раскладки, возможность запуска программ в оперативной памяти и т.п. Мы обратим внимание только на значимые настройки WinPE. В самом низу есть блок выбора системных компонентов WinPE – различные программные платформы, драйверы, Internet Explorer, поддержка современных приложений Windows и MSI-установщиков. От этих компонентов будет зависеть функциональность WinPE, смогут ли на нём запускаться программы, требующие наличия тех или иных платформ. Галочки необходимых компонентов установлены по умолчанию. Галочки ненужных компонентов, например, Internet Explorer можем убрать. А нужных – добавить, установив их галочки. Из нужных, например, компонент «Windows Installer Files (Setup.exe)», это процесс установки Windows, интегрированный в WinPE.
Ещё внизу обратим внимание на блок драйверов. Возможно, для вашего компьютера нужны какие-то специфические драйверы, они добавляются в этом блоке. Устанавливаем галочку «Integrate Drivers». При нажатии «Copy Drivers Here» в проводнике откроется папка, куда необходимо поместить файлы этих специфических драйверов.
А теперь, друзья, интегрируем в WinPE сторонний софт. На панели слева кликаем раздел «Apps». Здесь нам предлагается включение в состав WinPE различных сторонних программ. Все они по большей части бесплатные. Есть платные, например, Acronis True Image 2021, но Win10XPE предлагает только легальные тестовые версии. Программы собраны в тематических папках. Пересматриваем все эти папки, все программы. Какие не нужны, убираем их галочки. Какие нужны, оставляем или устанавливаем их галочки. Для некоторых программ доступны настройки, с которыми они будут запускаться. Можем установить язык. И, например, для браузеров указать домашнюю страницу, импортировать закладки, отключить или включить какие-то их функции.
И давайте ещё рассмотрим включение своих папок и файлов в образ WinPE, например, если нам нужны свои портативные программы или какие-то данные. Если мы впоследствии будем записывать образ на флешку, после записи свои данные можем поместить на флешке где-угодно, например, в созданной в корне флешки папке. Но если мы будем тестировать WinPE с ISO-образа, либо вообще постоянно использовать ISO-образ, например, на виртуальных машинах, свои файлы нам необходимо включить в этот ISO. Сделать это можем с помощью Win10XPE.
Один из вариантов: в разделе «Build Core» устанавливаем галочку «Add Your Custom Folder», нажимаем «Open Custom Folder». В открывшейся папке создаём свою папку и помещаем туда свои данные.
Эта папка с данными будет добавлена в число системных каталогов WinPE. И мы сможем получить доступ к ней в корне логического диска WinPE.
Второй вариант: в разделе «Create ISO» устанавливаем галочку «Indude Files In ISO Root», нажимаем «Open ISO Root Folders». Помещаем свои данные в открывшуюся папку.
Эти файлы будут доступны нам в корне эмулируемого привода с ISO-образом WinPE.
Вот это, друзья, основные моменты настройки WinPE с помощью Win10XPE. Теперь давайте создадим ISO-образ WinPE. В самом верху окна конструктора жмём кнопку «Play».
В процессе создания образа конструктор попросит у нас разрешение на скачивание файлов Windows ADK. Даём разрешение, нажимаем «Yes».
Созданный ISO после его создания получаем в папке Win10XPE.
Далее можем сколь-угодно тестировать образ WinPE в виртуальной среде. Менять настройки WinPE, изучать возможности конструктора и добавлять какие-то функции. И в итоге записываем WinPE на флешку. Можно с помощью утилиты Rufus. Она, кстати, интегрирована в Win10XPE. Можем запустить её в разделе «Create ISO».