Скрипт позволяет пересортировать буквы WinPE согласно целевой ОС Windows. Аналог скрипта LetterSwap от NikZZZZ.-Ключи запуска скрипта: ■ TargOS=Auto - выбрать целевую ОС автоматически, значение по-умолчанию. Если найдено несколько ОС, в качестве целевой ОС будет выбрана ОС, которая запускалась последней. Поиск производится только по имени папки Windows (для ускорения поиска), на всех дисках Fixed HDD. ¤ TargOS=EQU - выбрать целевую ОС автоматически. Если найдено несколько ОС, будет выбрана ближайшая к запущенной РЕ по разрядности (в первую очередь) и поколению ОС (во вторую очередь). Поиск по дискам аналогичен режиму Auto. ¤ TargOS=GUI - режим с GUI, позволяет вручную выбрать целевую ОС. В меню выбора указывается подробная информация о названии/поколении ОС и её размещении. Если найдена только одна ОС, тогда GUI не используется, а единственная найденная ОС используется в качестве целевой. Поиск производится по всем корневым папкам, на всех дисках Fixed HDD. ¤ TargOS=E:\Windows - прямое указание пути к целевой ОС. ¤ TargOS=Not - не производить пересортировку буковок. Регистр букв для имён ключей и их значений не имеет значение (targos=AUTO то же, что и TargOS=Auto). Если ключ TargOS не указан, или указан неправильный ключ (неверный путь), это будет соответствовать режиму TargOS=Auto. Кроме пересортировки буковок, также производится присвоение буковок всем разделам накопителей (включая скрытые разделы, зависит от ключа HiddV), удаление дубликатов букв и букв-пустышек (букв, которым не соответствует ни один накопитель). Виртуальные диски (смонтированные с помощью ImDisk, OSF-Mount, BootPart и прочих программ) не перемонтируются. ■ MDisk=Y:\MyPath\MarkerFile.test - буква диска (Y:) и путь к маркеру (\MyPath\MarkerFile.test). В качестве маркера может выступать любой файл, размещенный по уникальному пути. Служит для идентификации диска со сборкой, этому диску будет присвоена своя буква диска (Y в примере). Допускается использование буквы диска A (если имеется флоппик на этой буковке, он будет утерян). Если MDisk не указан, используется ключ U:\2k10\Programs-2k10\Win2k78.bat (для монтирования носителя со сборкой 2k10 как U:\). Для сборки 2k10 также производится демонтирование программного пакета (диск Y:) перед работой скрипта. ■ HiddV=Not - не монтировать скрытые разделы дисков. Если ключ HiddV не указан или указано любое значение, кроме "Not", тогда скрипт при запуске смонтирует все разделы дисков, включая скрытые. Вариант запуска скрипта: PECMD.exe LOAD LettEX.wcs TargOS=E:\Windows MDisk=Y:\_WIN\78SETUP.CFG HiddV=Yes Сортировать согласно ОС в папке Windows на диске E:\, присвоить накопителю с маркером _WIN\78SETUP.CFG буковку Y:\, показывать скрытые разделы.-Запуск скрипта можно произвести из основного скрипта загрузки PECMD.ini, командой LOAD LettEX.wcs, или прямым вызовом PECMD.exe LOAD LettEX.wcs Для работы скрипта нужны версии PECMD за 2017 год и новее. Выложил архив (с перепаковкой /удалён мусор/ PECMD х86/х64 от 06.12.2017), с которым скрипт точно работает. Батником Pack_PECMD.cmd можно упаковать ЕХЕ-шки в mpress.
Last edited by Guest on 2018-05-03 21:07; edited 34 times in total
-gera_serg, со скриптом всё в порядке. Замени у себя в ядре PECMD на новую версию х64 (есть в шапке, можно упаковать mpress), подправь вызов скрипта на LOAD LettEx.wcs MDisk=Y:\CdUsb.Y Если не нужна сортировка буковок согласно ОС, тогда LOAD LettEx.wcs TargOS=NoWin MDisk=Y:\CdUsb.Y, будет быстрее отрабатывать. Ещё рекомендую EXEC --wait --hide PECMD.EXE SHOW -1:-1 перенести перед вызовом скрипта (или скрипт запускать после этого), чтобы скрипт попутно убрал буквы-двойники (а они бывают после работы SHOW -1:-1). Если показывать скрытые разделы не нужно, тогда можно вообще убрать EXEC --wait --hide PECMD.EXE SHOW -1:-1 - скрипт тоже подключает неподключенные разделы, но командой SHOW -1:0 (подключить все разделы, кроме скрытых).
Last edited by Guest on 2018-04-08 16:47; edited 1 time in total
conty9, Спасибо, теперь работает... Непонятно, почему в твоих "репаках" PECMD Help не вызывается из трея, бывает полезно почитать и повыполнять отдельные команды в режиме отладки...
gera_serg, я удалил справку из ехе-шек для уменьшения размера. Пользователю WinPE оно, как бы, ни к чему. Полноценные ангельские сборки PECMD можно брать у барана. )))
52568gera_serg, я удалил справку из ехе-шек для уменьшения размера. Пользователю WinPE оно, как бы, ни к чему. Полноценные ангельские сборки PECMD можно брать у барана. )))
тут нарисовалась проблема Я часто пользуюсь твоей утилитой DaRT_RE, пункт восстановления запуска винды 7х64 из-под хемомовского ядра PE 8x64 (переименовав DaRT_RE.bin -> DaRT_RE.wcs) Методом проб подобрав конкретный работающий PECMD64 из какой-то твоей старой сборки... Сейчас смотрю, этот пункт в свежих PECMD (для LettEx.wcs) не стартует, а это для меня принципиально... Пришлось вернуться к старому варианту от NikZZZZ
В режиме UEFI+SecureBoot не установишь 7х64 - потому как в ней нет цифровых подписей. Поэтому и восстанавливать будет нечего в этом режиме загрузки. И PE 7x64 там не загрузится.
Last edited by Guest on 2018-04-12 10:58; edited 1 time in total
Восстановление по кнопке Rec Env 7х64 уже перестало стартовать....
Сделал отдельный ехе-шник DaRT_RE, пробуй. Скрипт DaRT_RE.bin больше не нужен (интегрирован в ехе-шник).
имхо, может есть смысл сделать запуск LettEx.wcs без каких-либо параметров в режиме GUI
Утилита сделана для сортировки буковок на этапе запуска РЕ, когда окно с ожиданием выбора пользователя нецелесообразно. А GUI - как вариант, если пользователя не устроит автоматический выбор адекватной для РЕ лежачей ОС.
Last edited by Guest on 2018-04-16 13:45; edited 1 time in total
В PECMD имеется две прямые команды для присвоения буковки накопителю: SHOW и SUBJ. Как оказалось, первая команда не синхронизирует присвоенные буквы с ОС, причём дело совсем не в реестре. Я уж было решил, что придётся переписывать почти всё под виндовый mountvol... Но, оказалось, SUBJ делает всё правильно. Так что осталось немного подкорректировать скрипт, и будет работать, как нужно.
Last edited by Guest on 2018-04-20 11:34; edited 2 times in total
Обновил скрипт, в шапке новый вариант. Изменения: 1. Заменил SHOW на SUBJ, следствием чего является синхронизация с WinPE переприсвоенных буковок. 2. Добавил ключ HiddV=No. Если значение "No" - тогда не монтировать скрытые разделы дисков, т.е. используется SHOW -1:0, в противном случае SHOW -1:-1. 3. Немного изменил схему проверки соответствия буковок для CD/DVD. Теперь должно и для этих устройств синхронизировать букву. Причём, даже если поколения целевой ОС и WinPE разные (например, Windows XP и WinPE 8x64). Хотя, если в системе два идентичных приводаCD/DVD (если модели полностью идентичны), тогда синхронизация не получится. ))) 4. Некоторые другие изменения.
Это не критерий. Например, у меня 4 харда. На 2-х есть ОС, на третьем - целых две. В общем-то, они у меня для тестов, основная одна. Но КАК её определить??? Порядок хардов определяется при загрузке, и 0-вым хардом будет загрузочная флешка, а всё остальное - как Bios/UEFI/Винда положат. У меня нет общего меню для всех ОС, просто выбираю при загрузке нужный хард. Впрочем, одна идейка нарисовалась. Можно анализировать дату доступа к куста реестра (например, SAM). Какой куст "новее" - та винда "загружаемая". Т.е., осталось ввести ещё один ключ TargOS=Last и реализовать сравнение.
Last edited by Guest on 2018-04-20 11:30; edited 2 times in total
52890sergeysvirid, повторю: у меня три харда с ОС. На каждом свой загрузчик со своим меню. А разгребать BCD-меню, к какому харду оно ведёт - то ещё удовольствие. А если ещё и контейнеры прописаны - вообще "сказка" (тем более, что с ними не засинхронишься). Вариант с временем доступа к реестру проще в реализации (и значительно быстрее при загрузке). Конечно, 100%-ной уверенности в выборе цели не даст, но довольно близко: вряд ли перед запуском РЕ мы юзали редкопользуемую ОС последней, скорее наоборот - любимую/ходовую.
Вариант с временем доступа к реестру - имхо самый правильный. Самое главное в этой задаче - не (псевдо)интеллект выбора, а предсказуемость и однозначность
Какие задачи будут решаються интелектульной предсказуемой однозначной сортировкой? 1. Домаший (известный) комп вдруг перестал загруждаться? Нужно восстановить работоспособность? 2. Поменять/добавить еще Систему к имеющимся? 3. Притащили черный ящик, просили восстановить работоспособность. 4. Дали временно поработать на железке, но хозяин отсутствует, "вход" не менять... Если это черный ящик - мне интересен GUI, определить в первую очередь что вообще там стоит/стояло...
Как оказалось, прежний вариант скрипта отлично работал при тестах после загрузки РЕ, но неадекватно - во время загрузки. Одна и та же команда FDRV (получить список буковок дисков) вела себя по-разному, "пропускала" буквы дисков. Поэтому иногда/некоторые ОС не удавалось найти, и вся схема летела под хвост. Вроде бы получилось привести её в чуство при запуске РЕ, по крайней мере у меня из 20 запусков все отработали, как надо. Закинул в шапку новый вариант. Изменения: скрипт пишет лог в файл LettEX.log; режим Auto теперь определяет целевую ОС как последнюю из загруженных пользователем (проверка по дате обращения к кусту реестра SAM). Внимание, изменились ключи запуска!!! Теперь EQU соответствует старому режиму Auto, также используются Not вместо NoWin и No (для крысоты!). ))
Last edited by Guest on 2018-04-20 11:40; edited 2 times in total
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum