Среда Windows PE входит в Windows ADK, который теперь объединяет средства развертывания и оценки различных параметров системы.
Сегодня в программе:
- Что входит в Windows ADK
- История версий Windows PE
- Подготовка рабочей папки
- Копирование файлов Windows PE в рабочую папку
- Работа с WIM-образом Windows PE
- Создание ISO-образа или флэшки с Windows PE
Что входит в Windows ADK
Раньше инструменты для подготовки операционной системы к развертыванию и оценки ее работы поставлялись отдельными наборами. Теперь Windows Assessment and Development Kit (далее ADK) объединил несколько пакетов.
Deployment and Imaging Tools и Windows Preinstallation Environment
Эти средства для подготовки Windows к развертыванию ранее входили в WAIK, а Windows System Image Manager даже не изменился внешне.
Windows Performance Toolkit
Набор инструментов для оценки производительности Windows, с которым вы уже знакомы из других материалов блога, раньше поставлялся в наборе SDK. Теперь в WPT входят новые средства для записи различных сценариев работы приложений и системы (Windows Performance Recorder) и просмотра записей (Windows Performance Analyzer).
Windows Assessment Toolkit
Это новый набор, лицом которого является Windows Assessment Console. С ее помощью можно оценивать различные параметры работы Windows и приложений, например, производительность или потребление энергии.
Консоль удобна тем, что в нее уже включены различные тесты, причем они объединены в группы для комплексной оценки.
Загрузка и установка Windows ADK
Вы можете свободно скачать последнюю версию Windows ADK. На той же странице скачайте Windows PE add-on for the ADK.
Microsoft не предлагает к загрузке ISO, но с помощью установщика вы можете скачать полный комплект (инструкции на английском) и сделать из него образ, если необходимо. После установки вы найдете все наборы в папке Program Files\Windows Kits. Впрочем, если у вас 64-разрядная система, туда упадет лишь часть средств развертывания, а остальное окажется в Program files (x86).
История версий Windows PE
Полный список изменений в разных версиях есть в документации. Текущая версия — Windows PE for Windows 10. Она не претерпела существенных изменений по сравнению с предшественницей, но раньше среда развивалась более активно.
Например, на Windows PE 4.0 была основана среда предустановки Windows 8, что повлекло ряд значимых изменений по сравнению с Windows PE 3.1 времен Windows 7. Тогда расширился список пакетов (ссылка на актуальный документ), которые можно внедрить в PE. В частности именно в PE 4.0 добавились:
- .NET (WinPE-NetFX) обеспечивает запуск приложений, которым требуется .NET Framework.
- Powershell (WinPE-PowerShell) позволяет использовать PowerShell в среде PE. В состав ADK входит новая версия Powershell.
- DISM PowerShell Cmdlets (WinPE-DismCmdlets) представляют собой новые командлеты третьей версии Powershell для создания и обслуживания WIM образов
- Remote Network Driver Specification (WinPE-RNDIS) пригодится для доступа к удаленным клиентам из Windows PE
- Windows PE Secure Startup (WinPE-SecureStartup) нужен для управления BitLocker и TPM.
Изменения в Windows PE 5.0 и 5.1 были не такие значительные. Но если 5.0 вошла в ADK, то 5.1 с поддержкой WimBoot (ныне неактуальной), надо было применять в качестве обновления.
Дальше я расскажу, как создать загрузочный диск Windows PE с поддержкой .NET Framework и Powershell. Инструкции были написаны для Windows PE 4.0, но вполне применимы к более новым версиям.
Подготовка рабочей папки
Введите в поиск среда средств (в англ. версии — deployment) и запустите от имени администратора командную строку средств развертывания. По сути это файл DandISetEnv.bat из папки Deployment and Imaging Tools, задающий необходимые переменные среды для быстрого доступа к инструментам командной строки.
Для работы с автоустановкой и Windows PE у меня давно создана переменная среды %ua%, ведущая в папку unattend в корне профиля. Вы можете создать такую же переменную на постоянной основе, либо только в рамках текущей сессии командной строки, как показано ниже.
:: Задайте путь к рабочей папке (избегайте кириллицы и пробелов в пути) set ua=C:\unattend :: Создайте папку md %ua%
# Задайте путь к рабочей папке (избегайте кириллицы и пробелов в пути) $env:ua = "C:\unattend" # Создайте папку md $env:ua
Все дальнейшие команды будут использовать переменную %ua% вне зависимости от того, где у вас создана рабочая папка.
Копирование файлов Windows PE в рабочую папку
В ADK входит удобный файл copype.cmd, который делает эту работу одной командой.
Учтите, что с помощью DISM из 32-разрядной PE можно обслуживать Windows любой разрядности, а из 64-разрядной PE — только 64-разрядную. Во всех моих командах подразумевается создание 32-разрядной среды Windows PE. Для подготовки 64-разрядного диска замените везде x86 на amd64.
В командной строке выполните:
cd "..\Windows Preinstallation Environment" copype.cmd x86 %ua%\winpe_x86\
Первая команда переходит в папку с наборами файлов Windows PE, а вторая запускает файл copype.cmd с параметрами x86 для создания 32-разрядной PE и %ua%\winpe_x86\ для копирования необходимых файлов в эту папку, с которой мы будем работать дальше.
Работа с WIM-образом Windows PE
Все действия нужно выполнять в командной строке средств развертывания, которую вы запустили с полными правами на предыдущем этапе.
Шаг 1 – Подключение образа
Подключение WIM-образа выполняется одной командой с помощью утилиты DISM. Если вы часто работаете с WIM-образами, не повредит сначала очистить все предыдущие подключения.
dism /Cleanup-Wim dism /Mount-Wim /WimFile:%ua%\winpe_x86\media\sources\boot.wim /index:1 /MountDir:%ua%\winpe_x86\mount
Шаг 2 – Добавление пакетов в образ
Пакеты находятся в папке WinPE_OCs, и мы добавим четыре пакета:
- .Net Framework
- PowerShell
- командлеты DISM
- WMI
Первая команда переходит в папку, а вторая добавляет пакеты:
cd x86\WinPE_OCs dism /image:%ua%\winpe_x86\mount /Add-Package /PackagePath:WinPE-NetFx.cab /PackagePath:WinPE-PowerShell.cab /PackagePath:WinPE-DismCmdlets.cab /PackagePath:WinPE-wmi.cab
Возможность перечислить сразу несколько пакетов в одной команде ускоряет дело.
Вы можете добавить любые другие пакеты из папки WinPE_OCs. Например, WinPE-Scripting.cab обеспечит работу сценариев Windows Script Host (WSH). Но учтите, что каждый пакет увеличивает размер образа Windows PE.
Важно! Для работы PowerShell необходим .NET Framework, поэтому сначала нужно добавлять пакет WinPE-NetFx4.cab, и только вслед за ним WinPE-PowerShell3.cab и WinPE-DismCmdlets.cab.
Поскольку добавление пакетов сродни установке программ, при импорте WinPE-PowerShell3.cab без пакета .NET будет возникать ошибка 0x800f081e. Создавая свой первый диск, я добавлял пакеты в правильном порядке. Но потом случайно изменил его, когда собрал все пакеты в одну команду. Для решения проблемы пришлось плясать с бубном (в прямом смысле слова :)
Проверить наличие пакетов в образе вы можете командой:
dism /image:%ua%\winpe_x86\mount /Get-Packages
Шаг 3 – Добавление драйверов
Этот шаг необязателен, поскольку Windows PE содержит базовый набор драйверов, в том числе и для сетевых карт. Доступ к сети может вам понадобиться, например, для сохранения захваченного WIM-образа на сетевом диске.
Если возникла необходимость, с помощью DISM можно добавить:
- отдельный драйвер, указав путь к INF-файлу
- все драйверы из папки, указав путь к ней и ключ /recurse
Примеры этих команд:
dism /Image:%ua%\winpe_x86\mount /Add-Driver /Driver:C:\drivers\mydriver.INF dism /Image:%ua%\winpe_x86\mount /Add-Driver /Driver:C:\drivers /recurse
Шаг 4 – Добавление своих утилит и сценариев
У меня есть папка Tools, где хранятся различные утилиты и средства командной строки. Я всегда включаю ее в состав Windows PE, добавляя в корень диска.
xcopy /e /y "%userprofile%\PortableSoft\Tools" %ua%\winpe_x86\media\Tools\
Альтернативно, вы можете скопировать утилиты прямо в папку System32 образа. Тогда их можно будет запускать, не переходя в папку Tools или не указывая полный путь. Я, однако, предпочитаю отделять мух от котлет.
На примере Windows PE 3.1 я уже рассказывал о том, как организовать запуск своих программ и сценариев при старте PE. В этом плане новая версия Windows PE, похоже, не содержит ничего нового.
Шаг 5 – Сохранение изменений и отключение образа
Обе операции выполняются в рамках одной команды.
dism /Unmount-Wim /MountDir:%ua%\winpe_x86\mount\ /Commit
Если что-то пошло не так, и вы не хотите сохранять изменения, используйте ключ /Discard.
В папке media теперь находится готовый дистрибутив Windows PE. На его основе можно создать загрузочный образ ISO для записи на диск или носитель USB (флэшку).
Создание ISO-образа или флэшки с Windows PE
Для экспериментов на виртуальной машине загрузочный ISO образ удобнее:
oscdimg -n -b%ua%\winpe_x86\fwfiles\etfsboot.com %ua%\winpe_x86\media %ua%\winpe_x86\iso\winpe_x86.iso
Теперь вы можете подключить образ к виртуальной машине и протестировать работу Windows PE.
Загрузочная флэшка с Windows PE более универсальна, поскольку существует множество устройств без DVD-привода. Я уже описывал во всех подробностях процесс создания флэшки на примере Windows PE 3.1, поэтому здесь лишь ограничусь списком команд diskpart.
Команды для подготовки загрузочной флэшки
diskpart list disk :: Будьте внимательны, указывая номер диска с USB-носителем! select disk 1 clean create partition primary select partition 1 active format fs=fat32 quick assign exit
После выполнения этих команд вашей флэшке будет присвоена буква (например, K). Остается скопировать на флэшку содержимое папки media.
xcopy %ua%\winpe_x86\media\*.* /s /e /f К:\
Теперь вы можете подключить флэшку и загрузиться с нее.
Видно, что .NET Framework успешно добавлен, поскольку отображается список командлетов DISM в PowerShell 3. В ближайшее время я покажу, как использовать их для работы с WIM-образами из Windows PE.
Чтобы не терять время зря, вы пока можете прочесть интересные факты и полезные советы на тему Windows PE, а также поэкспериментировать с запуском приложений и заменой интерфейса командной строки на любимый файловый менеджер.
А вы пользуетесь Windows PE или другими дисками собственного изготовления? Расскажите в комментариях, какие диски вы используете для обслуживания и восстановления системы!
baw17
в работе помогает MSDaRT_2010-Blueforce + ERDcommander для XP
Виталий
Сколько это добро весит?
Vadim Sterkin
Виталий, гм… думал, что размер ADK указан в статье. 1.2 Гб :) Добавил.
Максим, пришлось удалить ваш комментарий. Догадайтесь почему…
Valerii
Вадим, большое спасибо за обзор. Хотелось бы услышать Ваше мнение о необходимости использования командлетов PowerShell для DISM в преддверии обзора на эту тему. Какой выигрыш это дает по сравнению с обычными возможностями командной строки? Remoting (winrm+winrs или PowerShell remoting) был доступен и раньше, если о нем говорить. В общем, я пока себе не нашел ответа на этот вопрос.
Виталий
Отлично. Не ожидал. А то прочитал список того, что объединили, начал считать про себя число образов DVD, а тут вполне человеческий размер. Надо будет посмотреть.
Vadim Sterkin
Valerii, да я и сам сомневаюсь в том, что обзор командлетов DISM так уж необходим на страницах моего блога :)
Как вы отметили, в корпоративной среде он не дает ничего нового, Наверное, наиболее вероятный сценарий — это когда «технику в поле» нужно подкорректировать образ.
Домашним пользователям вряд ли очень нужно обслуживание образов из PE именно с DISM, т.к. захват/применение обеспечит imagex.
Therion1966
Windows PE — пользуюсь, причём очень активно! Только не собственного изготовления, а от Зверя и др. :(
До сих пор не было времени (да и желания, если честно) вникнуть в процесс. Теперь, после Вашей статьи, пожалуй, попробую. :) Спасибо, в очередной раз!
P.S.
А вообще, на данный момент использую «ZverDvD v2011.9 + Alkid SE 2011.9» (записан на DVD) и «MultiBoot_2K10_1.6.2P1_conty9» (на флэшке, две XP и 7-ка).
P.P.S
Таки да, чуть не забыл! Поздравляю с годовщиной блога! Извините, что с опозданием. :)
CtrlSoft
Понравилось что в новой версии WinPE включен режим aero, пускай и базовый. Хотелось бы в WinPE3.1 такого. Возможно ли?
Vadim Sterkin
Therion1966, понятно, у вас полный набор г-сборок :) Спасибо за поздравления.
CtrlSoft, даже если и возможно, то овчинка не стоит выделки.
Therion1966
Ага. :( Год как «на вольных хлебах», ИП, ремонт и настройка компов. Много приходится по людям болтаться, а у них чего только не бывает!
Для себя-то, понятно, никогда этого не использую.У меня, почему-то, всё работает без проблем. Что я делаю не так? :)
tr011_tmn
с интересом ознакомился с материалом. Буду пробовать скрестить WinPE 4.0 с установкой Win7 дабы по максимуму задействовать предоставленный функционал :-)
Тем паче что давно хочу реализовать свой Boot.Wim, и наличие FrameWork актуально для меня на этапе установки.
Виталий
Лучше с ХР.
0sten
Долго пытался понять, почему Майкрософт при работе с wim архивами ушёл от быстрого wimfltr к более чем в пять раз медленному winmount. Не понял, но могу предположить только, что в целях использования скриптов Powershell, которые могут управлять DISM и не могли управлять Imagex’ом. Но, возможно, ошибаюсь, чего-то не знаю — и поэтому не могу понять высший смысл этого перехода.
Vadim Sterkin
Imagex может только монтировать образы и получать информацию о них. DISM — это полноценная система обслуживания образа. Но никто не мешает вам монтировать образ с imagex.
0sten
Только сегодня заметил такие милые вещи в новом DISM’е, как /Mount-Image и /Commit-Image, которые позволяют работать не только с WIM, но и с VHD образами, а также /Capture-Image и /Apply-Image, которые делают полностью излишним ImageX.
Осталось каком-нибудь китайцу-любителю написать metro-style GUI для нового DISM’a, и штатный WinPE будет отличным инструментом для работы с образами. Можно, конечно, и в комстроке, но это же не наш путь :)
Алексей Г
Вадим. У меня тут вопрос по пакетам возник. Я настраиваю winpe4.0 для установке по pxe. Какие пакеты надо иметь в образе pe, чтобы установка запустилась?
WMI и DISM достаточно?
wim из дистров win8beta не грузятся (идёт автозапуск без staranet, и ошибка wmi)
Vadim Sterkin
Алексей, не пробовал это делать, да и подробностей не вижу. Руководство для 7 здесь (в 8 д.б. аналогично).
Алексей Г
Vadim Sterkin,
Да, я пользовался этой статьёй. В общем у меня получилось настроить DHCP, TFTP сервер, и загрузчик. Буду пробовать настроить образ PE методом проб, ошибок и экспериментов)
О результатах отпишусь.
Leo Лапыч
А у меня при выполнении
dism /image:%ua%\winpe_x86\mount /Add-Package /PackagePath:WinPE-NetFx4.cab /PackagePath:WinPE-PowerShell3.cab /PackagePath:WinPE-DismCmdlets.cab /PackagePath:WinPE-wmi.cab
выдаёт
Failed to find the resources for this executable.
То же самое выдаёт и при запуске
dism
без параметров.
Должен ли я воспользоваться imagex или есть способ побороть возникающую ошибку (я знаю, он всегда есть, вопрос величины усилий).
А путём imagex и не получилось пойти, потому как нету peimg.
Ещё забыл сообщить: ОС WinXPSP3 (x86).
Vadim Sterkin
Windows XP не входит в список поддерживаемых систем, и да, dism в ней нет.
Leo Лапыч
Vadim Sterkin, ясно, но тогда не понял шутки юмора инсталлятора, позволившего установить ADK на неподдерживаемую систему.
Vadim Sterkin
Об этом тоже написано на той же странице
Там могут быть просто инструменты командной строки или прочие утилиты, которые работают в XP. Но если вы хотите делать то, что описано в статье, вам нужен DISM — Windows 7/8.
sega18
хотелось бы увидеть инструкцию по обновленному adk
заранее благодарю
Vadim Sterkin
На каких конкретно шагах выполнения инструкции у вас возникли трудности с обновленным ADK? Какие конкретно трудности возникли?
sega18
вадим спасибо за быстрый ответ,а по сути не могу Net интегр-ть
при копировании с родным copype раб,папка пуста, ладно- смонтировал wim -пакет Net , Powershell ошибка
Vadim Sterkin
С трудом понимаю вашу проблему, но попробуйте явно указать путь: copype x86 c:\test\
И следите за выводом в командной строке — там же пишется все.
sega18
извини обманул -дерево папок :
fwfiles
media
mount
смонтировал — добавляю пакеты
Ошибка: 87
The packadepath option is not recognized in this context.
For more information, refer to the help.
sega18
почему то с 3го раза пошло
добавил Net первый и один, в куче -ошибка почему-то
благодарю
Vadim Sterkin
В статье же объясняется, что .NЕТ должен идти первым.
sega18
хочу просто поблагодарить за твои статьи и рассылку-грамотно и актуально !очень много почерпнул из них
с искренним уважением сега
Vadim Sterkin
Я рад, что у вас все получилось :)
Сергей
Добрый день, огромное спасибо за полезную статью, как всегда увлекательно и информативно.
А поделитесь пожалуйста содержимым вашей папки tools, какие утилиты вы используете, интересно узнать.
Vadim Sterkin
Сергей, спасибо за отклик.
Я рассказывал о многих утилитах из этой папки на страницах блога. Например, 10 лучших бесплатных программ для быстрой диагностики Windows.
Алексей
Вадим, а какие именно действия нельзя выполнить если разрядность не совпадает? Создать/развернуть образ системы с другой разрядностью у меня получилось, включить компоненты на 64-битной системе из winpe x86 тоже. В интернетах прочитал, что с дровами заморочки могут быть. Только это, или что-то еще? Подскажите пожалуйста.
Vadim Sterkin
Алексей, пожалуй, тут надо было поточнее выразиться. Кратко, из х86 можно обслуживать х86 и х64, а из х64 только х64. Я потом дополню материал, а пока цитата.
Обслуживание образа Windows в Windows PE
сергей
«Введите в поиск deployment и запустите от имени администратора» а если нет поиска,можно как нибудь запустить этот файл в командной строке?
Vadim Sterkin
Сергей, можно. Найдите папку, в которую установился ADK — подсказка там же на картинке…
Sam
подскажите пожалуйста что значит «Задайте путь к рабочей папке» ?
Vadim Sterkin
Судя по кавычкам, это цитата, но я ничего такого в статье не вижу. Поэтому поясните свой вопрос.
Sam
Vadim Sterkin,
в самой статье, в подзаголовке Подготовка рабочей папки.
там где надо вписывать в командную строку.
написано Задайте путь к рабочей папке (избегайте кириллицы и пробелов в пути).
Vadim Sterkin
Это папка, в которой будут все файлы. Где-то же должно это находиться :)
Sam
Vadim Sterkin,
Все разобрался спасибо за помощь
Юрий
Привет. Не подскажите, а каковы условия распространения? Например, я делаю вот такую сборку… вставляю в нее программу написанную мной лично.. продавать могу?
заранее благодарен
Vadim Sterkin
Юрий, думаю, что никаких прав на распространение Windows PE у вас нет. Можете уточнить в форуме лицензирования на TechNet или OSZone.
Юрий
Vadim Sterkin,
Скажите, а как тогда люди патентуют свои программы на основе Windows PE?
http://www.antiwinlocker.ru/images/stories/ss_antiwinlocker/awlcd-auth.gif
http://www.antiwinlocker.ru/antiwinlockerlivecdmanual.html
Vadim Sterkin
Юрий, а я и не уверен, что это запатентовано. А продавать можно что угодно :) Как я сказал, я не эксперт по лицензированию ^^
Сергей
Здравствуйте, Вадим. Подскажите, как правильно настроить startnet.cmd. Мне кажется консоль в winpe работает иначе, чем в винде.
К примеру я создал файл, для запуска ТС с конфигом startTC.cmd и в startnet.cmd прописал следующее:
start "%SystemDrive%\Program Files\TotalCmd\startTC.cmd"
wpeinit
При запуске winpe открывается второе окно консоли, но скрипт startTC.cmd в нем не выполняется. В главной консоли выполняется wpeinit. Приходится вручную запускать мой скрипт.
Так вот вопрос — как в фоновом режиме запускать приложение(желательно без дополнительной консоли) перед wpeinit?
P.S.: использую новую версию ADK и мне как полнейшему нубу в этом деле было сложновато разобраться в новых названиях папок))
http://www.microsoft.com/ru-ru/download/details.aspx?id=30652
Сергей,
http://s.neepic.net/624af98f8ede7348333fde395b6519be
открывается консоль в названии содержащая мой скрипт, но не выполняет его, а ждет, пока я дам задание.
Vadim Sterkin
Сергей, так в PE переменой %SystemDrive% соответствует буква Х, RAM-диск.
Как я понял, вы пытаетесь запустить ТС при старте PE.
1. Положите папку TotalCmd в корень диска PE (папка ISO).
2. Запускайте TC из startnet.cmd
Сергей
Vadim Sterkin,
да, я это читал и с запуском у меня проблем нет. Проблема в том, КАК он запускается. Мне надо, чтобы первым делом запускался ТС, а за ним, сразу, не дожидаясь окончания работы ТС, запускался wpeinit или любая другая команда, которая стоит в startnet.cmd.
Как я сказал, чтобы в командной строке запустить процесс и не дожидаться его окончания я использую команду Start, но в PE она работает иначе, чем в Windows. Вместо запуска моего скрипта в новом терминале, она просто открывает новый терминал.
С расположением и вызовом ТС у меня нет проблем. Про %SystemDrive%, Х:\ и RAM я тоже осведомлен. Тут все дело в работе консоли.
Vadim Sterkin
Сергей, wpeinit запускается долго, тут ничего не поделаешь. А проблема ваша в команде — там же пишет, что файл не найден. Непонятно, что вам мешает вызывать TC напрямую из startnet. Правильно так:
Это должно решить вопрос с запуском TC.
Сергей
Разобрался. Спасибо за статью и помощь!
Аркадий
Вадим, такой вопрос:
Как сделать, или может у вас есть диск с Windows 8 PE, с которого может загружаться на ноуте Packard Bell с режимом БИОСа UEFI ??
Скачал торрент Boot CD с Win 8 PE, записал на болванку, а ноут с него не грузится !
Хотел поделить диск C: на куски Акронисом с CD так не удалось.
А переключать БИОС в режим Legacy BOOT боюсь, после перестройки может не загрузиться Винда !
Сергей
А как, имея файл Instal.wim с раздела Recovery ноутбука, сделать из него загрузочную флешку?
Или как обновиться имея чистую, заново установленную Windows 8 x64 PRO до первоначального состояния системы со всеми предустановленными прогами, имея файл Instal.wim с раздела Recovery ноутбука? (Ну т.е. случайно снес оригинальную систему — мой случай — но сохранил содержимое папки Recovery — теперь хочу вернуть систему в первоначальный вид — либо из под чистой сторонней установленной винды, либо установив заново но из файлов раздела Recovery — там папка sources и файл Instal.wim — вот только как это сделать???)
Vadim Sterkin
Сергей, примените WIM из PE, почините загрузку. Техподдержка в форуме.
Сергей
Подскажите, а как можно в загруженном WinPE узнать букву диска, с которого она загружалась? Может быть есть какая то переменная среды? Или эту букву можно вручную установить в загрузчике?
Для чего это:
При старте WinPE запускается TC, у которого на панели инструментов есть ссылки на все установленные программы. Но не все программы можно запихнуть в wim архив — он разбухает, а это плохо. Поэтому некоторые программы хотелось бы держать именно на флешке. Так вот как правильно задать путь к этим программам, чтобы при запуске ТС на разных компьютерах он всегда имел правильные ярлыки для запуска утилит и инструментов?
Без использования плоской загрузки.
Vadim Sterkin
Сергей, изучайте возможности своего файлового менеджера — есть внутренние переменные %commander_drive% и %commander_path%.
Сергей
я знаю о внутренних переменных ТС. Это не то. Объясню по другому.
ТС находится внутри boot.wim и выполняется в winpeshl.ini.
Раздел WinPE, загруженной из boot.wim, всегда имеет букву X:\.
А раздел флешки, на котором лежат boot.wim и прочие программы/утилиты, на разных компьютерах может иметь разные буквы, как и любой съемный носитель(предположим это D:\).
Как создать ссылку на панели ТС на запуск программ с диска D:\(раздел флешки), чтобы она работала на разных ПК и с использованием разных флешек?
З.Ы.: наводку на редактирование HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices взял отсюда:
http://forum.oszone.net/post-2083366.html#post2083366
Удалось присвоить букву диску путем редактирования HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices в boot.wim.
Но такой метод сработает только для 1 накопителя. Если я перепишу образ на другую флешку — придется заново редактировать раздел под нее и удалять лишние данные о старой флешке.
Как сделать толково? Копал в сторону bcdedit — но ничего не нашел.
Vadim Sterkin
Нет, это называется «предоставлю больше инфо, чем в исходном вопросе» :)
Не то, потому что у вас TC не на флэшке, а зачем-то засунут в boot.wim. Ничто не мешает поместить его на флэшку, раз у вас там все утилиты сложены. А из startnet.cmd определять букву флэшки с помощью старого доброго маркерного файла и запускать TC.
См. также А вы совершаете эти 4 ошибки на форумах? (1 и 2).
Владимир Куприков
Сергей, я так понял, что у Вас ТС запускается из winpeshl.ini в разделе [LaunchApp] или [LaunchApps]
Если в разделе [LaunchApp], то у Вас больше ничего не получится, там можно запускать только одну команду.
Поэтому в раздел [LaunchApps] включите команды, как сказал Вадим:
В дальнейшем для любых обращений к флешке, исользуйте переменную %FLASH%
Но я сразу же отказался от использования winpeshl.ini. Оболочка в виде ТС это хорошо, но командная строка все-таки лучше. (Ну так, на всякий случай, после выхода из TC)
Поэтому использовал файл startnet.cmd
Только для случая внесения изменений в автозагрузку WinPE без сборки/разборки файла boot.wim, создал на флешке файл BootWinPE.cmd, куда включил все окончательные команды.
Правда пока этой возможностью еще не воспользовался. Если только во время отладки автозагрузки.
P.S. Я использую Windows Commander 5.0 — мне его вполне хватает.
Кстати, после выхода из WC английская раскладка клавиатуры почему-то переключается на русскую :-(
В WC стартует английская раскладка, а в коммандной строке русская не смотря на команду «wpeutil SetKeyboardLayout 0409:00000409»
Пока не могу понять в чем дело?
Вадим, может подскажете. ;-)
Vadim Sterkin
Владимир, я сказал добавить команды в startnet.cmd. Я сомневаюсь, что они отработают из winpeshl.ini в указанном вами виде. Вы сами проверяли это? Так или иначе, из командного файла они точно отработают.
По раскладке — это древний косяк, в свое время я его не победил (видимо, не работает).
Владимир Куприков
Не стал связываться с winpeshl.ini. Старый добрый autoexec.bat лучше :-).
мне это очень сильно напомнило этап 1-windowsPE файла ответов. Ну ни как не смог приципить к нему переменную %FLASH%. Запоминалась только вручную когда войдешь в cmd по Shift+F10. А в файле ответов — нет. Похоже там что-то связано с несколькими сессиями cmd. Но я так и не понял.
Ну пусть Сергей попробует, а вдруг у него получится и он нам об этом напишет. Он ведь использует именно его.
А если не получится, то перейдет на startnet.cmd, если конечно захочет.
Вот и у меня не получилось…
Сергей
По поводу winpeshl.ini:
Все команды из winpeshl.ini выполняются. Не важно сколько или какие разделы вы используете app или apps или вместе. Выполняется ВСЁ. Другое дело, что команды выполняются строго в том порядке в котором там прописаны — это раз. Во вторых они команда начинает выполняться только после того, как закончится предыдущая. И в третьих(нельзя сказать в третьих, т.к. это следствие из первых 2) — если [LaunchApp] указать ТС, а после добавить команды в [LaunchApps] — они будут выполняться только после закрытия ТС, но т.к. ТС указан как оболочка, то после выполнения команд из [LaunchApps] сразу последует выключение WinPE.
Поэтому я поступил следующим образом: в winpeshl.ini я прописал только ТС как оболочку, а в плагин autoruns для TC прописал прочие команды типо wpeinit и сейчас добавлю ту команду для поиска флешки, что вы предложили.
Таким образом сразу при запуске WinPE у меня стартует готовый к работе ТС, а в фоне выполняются прочие команды.
На счет консоли — так ее можно запросто вызвать из ТС. Хоть просто набрать на клаве cmd, хоть ярлык на панель добавить.
Раскладка)):
А зачем, Владимир, вы меняете раскладку при каждом запуске? Ведь можно один раз прописать:
После чего при запуске по умолчанию будет англ, и можно сменить на рус как обычно.
З.Ы.: Вадим, не считаю, что изначально дал вам недостаточно информации. Я сказал и что я хочу сделать и ЗАЧЕМ я это хочу.
Все же продолжу искать другие методы по получению буквы флешки. Пока буду использовать перебор, но это уж какой то некрасивый метод.
Vadim Sterkin
Сергей, спасибо за разъяснения по поводу winpeshl.ini. Я писал о нем в статье про 3.0, так что уже подзабыл подробности.
Вам шашечки или ехать? :)
Я остаюсь при своем мнении, поскольку ключевой момент — внедрение TC в boot.wim. В своих статьях я привожу примеры с размещением папки Tools в корне флэшки. В этом случае внутренних переменных TC достаточно для решения вашей задачи, поэтому мой ответ состоял из одной строки. У вас другой случай? Сорри, я не телепат :)
Максим
Скажите Вадим, а вы не знаете почему начиная от Win8 ADK, нет ISO образов с этим инструментом?
P.S. IDROID нашел сообразительность в скачивании с торрент трекера.
Vadim Sterkin
Максим, я не знаю. И вы напрасно качали это с торрентов — это же предварительная версия. Видимо, придется обновить статью для самых смекалистых.
Максим
Мне нужна основа. Конечно у меня есть adksetup.exe скачан с сайта МС. Но качать 4.1 ГБ я не собираюсь. Лучше обновлю предварительную версию с помощью этого файла. Спасибо за ответы
Vadim Sterkin
Ну да, скачать 1.2GB Developer Preview — легко, а 4GB последней версии — не, не надо. Дело ваше, но я считаю плохой идеей использовать предварительные версии вместо актуальных, особенно когда заходит речь об инструментах для создания образов.
Владимир Куприков
Действительно, а зачем? Так я и не понял почему. В первых сборках 3.0 и 3.1 я так и делал.
Видно сработал принцип: либо забыл, либо ассоциации с установленной Windows.
Я настраиваю Windows на русский язык, так как часто в установленной системе приходится пользоваться сначала именно русским языком. Да и не один я работаю на домашнем компьютере. И друзья чаще открывают сначала Word или Однокласники, а не командную строку для отладки и ремонта.
Когда-то в старых «Зверевых» сборках настройка на английский язык мне очень сильно мешала и надоедала. А изменить ее было никак нельзя. Но возможно я тогда чего-нибудь не знал. Теперь все делаю сам.
После непродолжтельной работы в WinPE с 3.0 до 4.1 понял, что для себя и, именно, в WinPE нужен сначала английский.
Сергей, интересно, а какие?
Я в сущности использую ТС только для удобного перемещения по дереву каталогов на флешке и диске, копирования, перемещения, удаления, запуска утилит и т.п.
Для выполнения последовательности часто выполняемых команд, я использую скрипты.
В моем и Вадима случае, у нас тоже стартует готовый к работе TC.
Сергей
да я не спорю, просто речь зашла о winpeshl.ini — я постарался подробней объяснить как я с его помощью реализовал запуск. Мне удобней использовать ТС как основной инструмент. И запускать приложения, в том числе и консоль удобней(да и быстрей) уже из него. Поэтому я сделал так.
Сергей
Вот такая команда:
Пробовал добавлять значение flash в реестр:
Но все новые окна(запущенные приложения) используют переменные того приложения из которого были запущены(1) и игнорируют записи в реестре(2). Изза этого воспользоваться переменной flash можно только используя startnet с примерным содержанием:
Использовать переменную flash в моей старой конфигурации запуска(опираясь на winpeshl.ini) не получается, т.к. ее надо выполнять перед запуском ТС.