С выходом Windows 8 обновилась и среда предустановки Windows PE до версии 4.0. Она входит в Windows 8 ADK, который теперь объединяет средства развертывания и оценки различных параметров системы.
Что входит в Windows 8 ADK
Раньше инструменты для подготовки операционной системы к развертыванию и оценки ее работы поставлялись отдельными наборами. Теперь Windows 8 Assessment and Development Kit (далее ADK) объединил несколько пакетов.
Deployment and Imaging Tools и Windows Preinstallation Environment
Эти средства для подготовки Windows к развертыванию ранее входили в WAIK, а Windows System Image Manager даже не изменился внешне.
Windows Performance Toolkit
Набор инструментов для оценки производительности Windows, с которым вы уже знакомы из других материалов блога, раньше поставлялся в наборе SDK. Теперь в WPT входят новые средства для записи различных сценариев работы приложений и системы (Windows Performance Recorder) и просмотра записей (Windows Performance Analyzer).
Windows Assessment Toolkit
Это новый набор, лицом которого является Windows Assessment Console. С ее помощью можно оценивать различные параметры работы Windows и приложений, например, производительность или потребление энергии.
Консоль удобна тем, что в нее уже включены различные тесты, причем они объединены в группы для комплексной оценки.
Загрузка и установка Windows 8 ADK
Windows 8 ADK можно свободно загрузить, имея подписку MSDN или проявив сообразительность. ADK поставляется в ZIP-архиве, и в моем распоряжении был файл en_windows_developer_preview_adk_x86_x64_734756.zip размером 1.2 Гб, с контрольной суммой:
1 | SHA1: 037F8159737AAB475732684A42A7A8F92AC0197C |
Распаковав архив, в списке файлов найдите adksetup.exe и запустите.
После установки вы найдете все наборы в папке Program Files\Windows Kits. Впрочем, если у вас 64-разрядная система, туда упадет лишь часть средств развертывания, а остальное окажется в Program files (x86).
Дальше в программе:
Что нового в Windows PE 4.0
На Windows PE 4.0 основана среда предустановки Windows 8. По сравнению с Windows PE 3.1 расширился список пакетов, которые можно внедрить в PE. В частности добавились пакеты:
- .NET (WinPE-NetFX4) обеспечивает запуск приложений, которым требуется .NET Framework.
- Powershell (WinPE-PowerShell3) позволяет использовать PowerShell в среде PE. В состав ADK входит новая версия Powershell за номером 3.
- DISM PowerShell Cmdlets (WinPE-DismCmdlets) представляют собой новые командлеты третьей версии Powershell для создания и обслуживания WIM образов
- Remote Network Driver Specification ( WinPE- RNDIS) пригодится для доступа к удаленным клиентам из Windows PE
- Windows PE Secure Startup (WinPE-SecureStartup) нужен для управления BitLocker и TPM. Последнее, впрочем, неактуально в России, куда запрещен ввоз устройств с TPM.
Дальше я расскажу, как создать загрузочный диск Windows PE с поддержкой .NET Framework 4 и Powershell 3.
Подготовка рабочей папки
Введите в поиск deployment и запустите от имени администратора командную строку средств развертывания. По сути это файл DandISetEnv.bat из папки Deployment and Imaging Tools, задающий необходимые переменные среды для быстрого доступа к инструментам командной строки.
Для работы с автоустановкой и Windows PE у меня давно создана переменная среды %ua%, ведущая в папку unattend в корне профиля. Вы можете создать такую же переменную на постоянной основе, либо только в рамках текущей сессии командной строки, как показано ниже:
1 2 3 4 | :: Задайте путь к рабочей папке (избегайте кириллицы и пробелов в пути) set ua=C:\unattend :: Создайте папку md %ua% |
Все дальнейшие команды будут использовать переменную %ua% вне зависимости от того, где у вас создана рабочая папка.
Копирование файлов Windows PE в рабочую папку
В WAIK входил удобный файл copype.cmd, который делал всю работу одной командой. В ADK его пока нет, но я создал такой же файл на основе старого (все изменения прокомментированы). Скачать copype.cmd для Windows PE 4.0.
Распакуйте архив в любую папку и скопируйте командный файл в корень папки Windows Preinstallation Environment.
Учтите, что разрядность Windows PE должна совпадать с разрядностью обслуживаемой системы. Во всех моих командах подразумевается создание 32-разрядной среды Windows PE. Для подготовки 64-разрядного диска замените везде x86 на amd64.
В командной строке выполните:
1 2 | cd "..\Windows Preinstallation Environment" copype.cmd x86 %ua%\winpe_x86\ |
Первая команда переходит в папку с наборами файлов Windows PE, а вторая запускает файл copype.cmd с параметрами x86 для создания 32-разрядной PE и %ua%\winpe_x86\ для копирования необходимых файлов в эту папку. В ней у вас должна получиться такая структура:
Далее мы будем работать только с файлами в этой папке.
Работа WIM-образом Windows PE
Все действия нужно выполнять в командной строке средств развертывания, которую вы запустили с полными правами на предыдущем этапе.
Шаг 1 – Подключение образа
Подключение WIM-образа выполняется одной командой с помощью утилиты DISM. Если вы часто работаете с WIM-образами, не повредит сначала очистить все предыдущие подключения.
1 2 | dism /Cleanup-Wim dism /Mount-Wim /WimFile:%ua%\winpe_x86\winpe.wim /index:1 /MountDir:%ua%\winpe_x86\mount |
Шаг 2 – Добавление пакетов в образ
Пакеты находятся в папке WinPE_OCs, и мы добавим четыре пакета:
- .Net Framework
- PowerShell
- командлеты DISM
- WMI
Первая команда переходит в папку, а вторая добавляет пакеты:
1 2 | cd x86\WinPE_OCs dism /image:%ua%\winpe_x86\mount /Add-Package /PackagePath:WinPE-NetFx4.cab /PackagePath:WinPE-PowerShell3.cab /PackagePath:WinPE-DismCmdlets.cab /PackagePath:WinPE-wmi.cab |
Возможность перечислить сразу несколько пакетов в одной команде ускоряет дело.
Вы можете добавить любые другие пакеты из папки WinPE_OCs. Например, WinPE-Scripting.cab обеспечит работу сценариев Windows Script Host (WSH). Но учтите, что каждый пакет увеличивает размер образа Windows PE.
Важно! Для работы PowerShell необходим .NET Framework, поэтому сначала нужно добавлять пакет WinPE-NetFx4.cab, и только вслед за ним WinPE-PowerShell3.cab и WinPE-DismCmdlets.cab.
Поскольку добавление пакетов сродни установке программ, при импорте WinPE-PowerShell3.cab без пакета .NET будет возникать ошибка 0x800f081e. Создавая свой первый диск, я добавлял пакеты в правильном порядке. Но потом случайно изменил его, когда собрал все пакеты в одну команду. Для решения проблемы пришлось плясать с бубном (в прямом смысле слова :)
Проверить наличие пакетов в образе вы можете командой:
1 | dism /image:%ua%\winpe_x86\mount /Get-Packages |
Шаг 3 – Добавление драйверов
Этот шаг необязателен, поскольку Windows PE содержит базовый набор драйверов, в том числе и для сетевых карт. Доступ к сети может вам понадобиться, например, для сохранения захваченного WIM-образа на сетевом диске.
Если возникла необходимость, с помощью DISM можно добавить:
- отдельный драйвер, указав путь к INF-файлу
- все драйверы из папки, указав путь к ней и ключ /recurse
Примеры этих команд:
1 2 | dism /Image:%ua%\winpe_x86\mount /Add-Driver /Driver:C:\drivers\mydriver.INF dism /Image:%ua%\winpe_x86\mount /Add-Driver /Driver:C:\drivers /recurse |
Шаг 4 – Добавление своих утилит и сценариев
У меня есть папка Tools, где хранятся различные утилиты и средства командной строки. Я всегда включаю ее в состав Windows PE, добавляя в корень диска.
1 | xcopy /e /y "%userprofile%\PortableSoft\Tools" %ua%\winpe_x86\ISO\Tools\ |
Альтернативно, вы можете скопировать утилиты прямо в папку System32 образа. Тогда их можно будет запускать, не переходя в папку Tools или не указывая полный путь. Я, однако, предпочитаю отделять мух от котлет.
На примере Windows PE 3.1 я уже рассказывал о том, как организовать запуск своих программ и сценариев при старте PE. В этом плане новая версия Windows PE, похоже, не содержит ничего нового.
Шаг 5 – Сохранение изменений и отключение образа
Обе операции выполняются в рамках одной команды.
1 | dism /Unmount-Wim /MountDir:%ua%\winpe_x86\mount\ /Commit |
Если что-то пошло не так, и вы не хотите сохранять изменения, используйте ключ /Discard.
Шаг 6 – Копирование обновленного WIM-образа в дистрибутив Windows PE
Все действия мы выполняли над WIM-образом, расположенным в корне рабочей папки. Теперь им нужно заменить стандартный загрузочный WIM-образ в папке ISO\sources, сохраняя имя boot.wim.
1 | copy %ua%\winpe_x86\winpe.wim %ua%\winpe_x86\ISO\sources\boot.wim /Y |
В папке ISO теперь находится готовый дистрибутив Windows PE. На его основе можно создать загрузочный образ ISO для записи на диск или носитель USB (флэшку).
Создание ISO-образа или флэшки с Windows PE
Для экспериментов на виртуальной машине загрузочный ISO образ удобнее:
1 | oscdimg -n -b%ua%\winpe_x86\etfsboot.com %ua%\winpe_x86\ISO %ua%\winpe_x86\winpe_x86.iso |
Теперь вы можете подключить образ к виртуальной машине и протестировать работу Windows PE.
Загрузочная флэшка с Windows PE более универсальна, поскольку существует множество устройств без DVD-привода. Я уже описывал во всех подробностях процесс создания флэшки на примере Windows PE 3.1, поэтому здесь лишь ограничусь списком команд diskpart.
После выполнения этих команд вашей флэшке будет присвоена буква (например, K). Остается скопировать на флэшку содержимое папки ISO.
1 | xcopy %ua%\winpe_x86\iso\*.* /s /e /f К:\ |
Теперь вы можете подключить флэшку и загрузиться с нее.
Видно, что .NET Framework успешно добавлен, поскольку отображается список командлетов DISM в PowerShell 3. В ближайшее время я покажу, как использовать их для работы с WIM-образами из Windows PE.