[Цитировать]

    Гость
  • Репутация:0

    [+] [-]
78Setup (классическая установка Windows 7/8/8.1/10 из набора дистрибутивов)
Утилита позволяет держать наборы установочных дистрибутивов ОС Windows 7/8/8.1/10 в 3 папках (папки указываются в конфигурационном файле 78setup.cfg). Поддерживается обработка как распакованных дистрибутивов, так и образов дисков (для работы с образами, при необходимости, устанавливается ImDisk). При запуске утилита сканирует указанные в конфигурации папки на всех дисках (обрабатываются все подкаталоги указанных папок) и формирует списки найденных дистрибутивов и списки образов дисков. Дополнительно сканируются распакованные в корень дисков дистрибутивы (папка Sources). Количество дистрибутивов не ограничено (в разумных пределах), полсотни отображается без проблем.
Утилита не производит непосредственно установку ОС. Она предназначена для удобного поиска, монтирования и выбора дистрибутива и передачи параметров установки стандартному инсталятору от MS (setup.exe)
Несмотря на "обилие" кнопок, в обычном варианте использования программа довольно несложная. В общем случае, следует определиться, из какого варианта дистрибутива будем устанавливать ОС: из распакованного ("Классическая установка из папки дистрибутива") или из образа диска ("Классическая установка из образа дистрибутива"). Выбираем в соответствующей панели нужный дистрибутив (из найденных или, при необходимости, вручную), нажимаем "Установить". Откроется окно выбора параметров установки. В нем по-умолчанию будет оптимальный выбор среды установки, папки $OEM$ и сценария установки (при необходимости, их тоже можно сменить). Останется только нажать "Запуск" - и запустится классическая установка ОС...Подробнее - кнопки, что и как: 1. Вызов диспетчера задач. Есть хоткей вызова TaskMgr (кнопка Break/Pause), хоткей работает, пока запущена 78setup.
2. Панель выбора разрешения (800х600 или 1024х768). Если выбрано разрешение, отличное от указанных, установка разрешения будет заблокирована (считается, что под РЕ есть полноценный режим выбора разрешения).
3. Панель оперативной смены языка 78setup (при запуске утилита автоматически определяет язык РЕ/ОС, и, если он русский, тогда устанавливается русский интерфейс, если нет - английский). При оперативной смене языка также происходит обновление доступных HDD и заново производится поиск дистрибутивов на всех дисках (аналогично п.4).
4. Обновить HDD. Будет произведен повторный поиск дистрибутивов (актуально, если был подключен новый носитель) без перезапуска программы. При этом добавленные вручную дистрибутивы из меню будут удалены.
5. Информация о системе: для WinPE вид загрузки (BIOS/UEFI), тип ОС/РЕ (индикация Windows / WinPE), разрядность (х86, х64, если в х64 поддерживается подсистема х86, тогда х64|86), русская или нет (Rus/Eng, для других - индикация DOS-кодовой странички, например CP:936 для китайской WinPE).
6. Имя запущенной ОС/РЕ.
7. Диск, с которого запущена утилита.
8. Имя процессора и его частота.
9. Доступный под данной ОС/РЕ объем ОЗУ (для х64 - полный объем, для х86 без поддержки РАЕ - ограничено 3,2...3,7Гб).
10. Панель установки из папки распакованного дистрибутива
11. Выбор дистрибутива. Поиск ведется по маскам install*.wim, install*.esd, install.swm. Все найденные варианты добавляются в меню выбора. В последнюю очередь производится поиск в корневых папках Sources (независимо от настроек папок для поиска), последний найденный вариант будет выбран по-умолчанию.
12. Описание дистрибутива из файла install*.wim/esd/swm.txt (т.е., имя должно быть то же, что и у установочного архива, но с дополнительным расширением .txt). Текст в одну строку, кодировка 1251, до 70-80 символов. Нельзя использовать спецсимволы и запятую - в общем пробуйте, если будет "неудобный" символ - описание будет обрезано/уменьшено/отсутствовать.
13. Ручной выбор дистрибутива (откроется окно обзора файлов, маска *.wim/*.esd/*.swm). Выбраный дистрибутив будет добавлен в меню (п.11) и выбран по умолчанию.
14. Состояние среды установки в папке X:\Sources. Если среда отсутствует, надпись серым цветом, если имеется - черным. Если среда отсутствует, но имеется её архив (файлы sources.7z и sources64.7z в подкаталоге Utilites), после запуска 78setup архив будет распакован в фоновом режиме, после чего индикация изменится.
15. Запуск DiskPart в отдельном окне.
16. Запуск установки (с возможностью среды установки, OEM и сценария установки). Если среда установки отсутствует, установка будет возможна только при помощи WinNTsetup.
17. Панель установки из образа диска дистрибутива
18. Подсказка по хоткею ('Alt+Break') для прерывания установки ОС или работы MS DaRT.
19. Выбор образа дистрибутива. Поиск ведется по маскам *.iso, *.nrg, *.bin (эти форматы поддерживает ImDisk). Все найденные варианты добавляются в меню выбора.
20. Индикация текущего (выбранного) образа для использования.
21. Ручной выбор образа. После выбора будет добавлен в меню (п.19) и выбран по-умолчанию.
22. Индикация папки V:\Sources смонтированного образа.
23. Окно управления ImDisk (можно подключить образ с любой свободной буквой диска или отключить завиртуаленный).
24. Запуск установки. Перед запуском (при необходимости) монтируется новый образ. Под РЕ (если имеется трей-бар), после монтирования отображается всплывающее сообщение в трее. Дальше - аналогично п.16, но для установки будет выбран дистрибутив из папки V:\Sources.
U1. Панель утилит. Может отключаться в настройках 78setup.cfg, при этом панель будет отсутствовать, хоткеи панели отключаются.
U2-5. Штатные утилиты 78setup: блокнот, файл-менеджер JustManager /хоткей 'F11'/, запуск среды восстановления / DaRT (если отсутствует по пути X:\sources\recovery\RecEnv.exe, неактивна), BootICE (если отсутствует WinNTsetup скрыта).
U6-9. Пользовательские утилиты 78setup. В конфигурационном файле (78setup.cfg) можно указать:
а) имена утилит (UserX=, где X - 1...4), отображаемые на кнопках
б) пути их запуска (UserX.86=/UserX.64= для среды х86 и х64 соответственно), путь может быть как относительным (относительно 78Setup.exe, например, Utilites\SnapShot.exe), так и полным (X:\Windows\regedit.exe)
* Если заранее известно, что будет использована WinPE x64 с поддержкой подсистемы x86, можно указать одно и тоже (путь к х86-версии утилиты)
** Если путь к утилите (соответствующей разрядности ОС/РЕ) не указан либо неверен, кнопка её запуска будет невидима.

U10. Переход к окну "Перезагрузка". В нем выводится соответствующее предупреждение, и возможна перезагрузка или выключение ПК. Перед выключением извлекаются все носители (CD/DVD).
* Под РЕ-установщиками перезагрузка также возможна, если по Alt+F4 закрыть 78setup (используемый в качестве оболочки), в этом случае произойдет завершение сеанса работы - что для РЕ-установщика вызовет перезагрузку.
** После использования среды восстановления (если выйти из программы) происходит перезагрузка. Если это нежелательно, не выходя из DaRT, снимите процесс RecEnv.exe в диспетчере задач или по хоткею 'Alt+Break' (п.18).
Выбор параметров установки. 1. Индикация папки дистрибутива
2. Индикация описания (если имеется). Для образов (если в образе нет описания), индицируется полный путь к образу.
3. Панель выбора среды установки. Максимально возможны 3 варианта: а) Distributive - среда имеется в папке дистрибутива и подходит для использования; б) X:\Sources - среда имеется в X:\Sources (либо была распакована из заготовки Utilites\sources*.7z); в) .\Utilites - если при запуске 78setup среда уже имеется в X:\Sources, но может быть использована из заготовки Utilites\sources*.7z. Отображается разрядность и версия среды установки.
* В утилите производится предварительный поиск файлов в каталогах дистрибутива и X:\Sources. Найденные файлы анализируются по разрядности (х86/х64) и добавляются в это меню. Для использования будут доступны только те варианты, которые совместимы с текущей системой (т.е., для WinPE х86 - только х86, а для WinPE х64 без поддержки подсистемы х86 - только х64). Кроме разрядности файла установки, важную роль играет разрядность среды установки (библиотек рядом с setup.exe) - она должна соответствовать разрядности setup.exe, только при таких условиях возможна установка. Если имеется среда установки в X:\Sources, то там 100% нужная среда.
4. Панель выбора папки OEM-установки и сценария. По-умолчанию, автоматически выбираются из папки дистрибутива (если отсутствуют в дистрибутиве, пункты неактивны). Также возможен ручной выбор (если произведен выбор, пункт активируется).
5. Отмена, выход в главное меню программы.
6. Проверка архива выбранного дистрибутива (файл install*.win/esd/swm/rwm) на целостность с помощью WimLib (откроется DOS-окно с информацией о состоянии и результате проверки).
7. Запуск установки ОС с помощью WinNTsetup. Программа позволит установить ОС даже при отсутствии среды установки. При этом настройки (выбранный дистрибутив, сценарий установки) будут автоматически добавлены в WinNTsetup, а в качестве целевого диска для ОС и загрузчика будет выбран С:\.
* WinNTsetup поддерживает папку OEM-установки исключительно из папки дистрибутива. Т.е., если в дистрибутиве имеется Sourses\$OEM$, то OEM-установка производится из нее автоматически. Если же папка OEM-установки выбрана вручную (из другого каталога), то OEM-установка произведена не будет.
8. Запуск классической установки с выбранными настройками.-Примечания:
* Если не работает мышка, используйте Tab для перехода по кнопкам (Shift+TAB - переход в обратном порядке) и Enter/Space для выполнения.
** Кнопки недоступных операций блокируются автоматически.
*** Допускается размещение в одной и той же папке разных версий дистрибутивов с разными именами: install.swm (только один комплект, поскольку он может состоять из нескольких файлов, например install.swm, install1.swm, install2.swm и т.д.), неограниченного числа installXXX.wim (install_7x86.wim, install_8x86.wim и т.д., по маске install*.wim) и installXXX.esd (install_8x86.esd, install_8.1x86.esd и т.д., по маске install*.esd). Все эти дистрибутивы будут добавлены в меню. Описание конкретного дистрибутива должно соответствовать его имени с дополнительным расширением txt, например, install_7x86.wim.txt. При этом учитываем, что среда установки, ОЕМ и сценарий установки будут общими.
**** Начиная с версии 2.3, 78setup при поиске пропускает (игнорирует) файлы размером менее 256Мб. Т.е., такие файлы не включаются в список выбора дистрибутивов и их образов. Но, при желании, их можно выбрать вручную.

Назначение файлов:

78Setup.exe - х86 версия утилиты. Если в РЕх64 имеется подсистема х86, тоже будет работать (т.е., в таком случае её достаточно).
78Setup64.exe - х64 версия. Предназначена исключительно для х64 РЕ-установщиков без подсистемы х86.
78setup.cfg - конфиг. Можно удалять, если не нужен (читаем в нем самом описание). Если отсутствует, автоматически включается панель утилит.
Utilites\JustManager\ - файл-менеджер. Если не нужен, можно удалить (кнопка станет неактивной).
Utilites\sources*.7z - SFX-самораспаки среды установки (то, что будет распаковано в X:\Sources), в 2.0 используется среда установки от 10-ки. Версии для х86 и х64. Если не нужно, удаляем.
Utilites\ImDisk*.7z - SFX-самораспаки инсталятора ImDisk. Версии для х86 и х64. Если не нужно, удаляем. Если отсутствуют и в WinPE нет ImDisk, кнопки операций с виртуальными дисками блокируются.
Utilites\WinNTSetup*.exe - SFX-самораспаки WinNTSetup (x86 + x64). Если отсутствуют, из главного меню исчезнет кнопка запуска BootICE, а из меню установки - проверка архивов с помощью WimLib и установка ОС с помощью WinNTsetup.
Utilites\DaRTex*.exe - Explorer DaRT 6.0. Проводник из комплекта DaRT. Примечателен тем, что без проблем работает с запароленными (NTFS) папками. Работает только в среде WinPE.
Utilites\SnapShot*.exe - небольшой, но очень функциональный бекаппер Drive SnapShot.
Utilites\P_Assistant*.exe - Aomei Partition Assistant, довольно продвинутый менеджер дисков. Позволяет конвертировать MBR<>GPT.
Utilites\ShadowProtect*.exe - отличный бекаппер. Позволяет создавать как обычные, так и инкрементные архивы, умеет их проверять и монтировать. Также есть функция адаптации ОС под новое железо (HIR, работает только в х86-версии), менеджер дисков и многое другое.
Папка Translate - в ней находятся заготовки для перевода интерфейса на другие языки, описание в read.txt. Для работы программы не нужна.-* В 78Setup необязательно использовать полный набор файлов. Если среда установки есть в РЕ, тогда можно удалить Utilites\sources*.7z. Если РЕ на базе х64 обладает поддержкой х86-подсистемы, то х64-версии утилит можно удалить (оставить нужно лишь драйвер ImDisk64.7z - если он отсутствует в РЕ х64). Если в WinPE уже установлен ImDisk, тогда Utilites\ImDisk*.7z не нужны. Если дополнительные утилиты (JustManager, DaRTex, SnapShot, P_Assistant, ShadowProtect) не нужны, их также можно удалить полностью или по выбору (либо заменить пользовательский набор своим).

Маски для поиска установочных файлов:

Для файла установки (setup.exe в оригинальном дистрибутиве): set????.exe (т.е., будут найдены файлы setup.exe, set64.exe, setup64.exe,setup32.exe)
Для дистрибутивов: install.swm, install*.wim, install*.esd
Для образов дисков: *.iso, *.nrg, *.bin
Для папок OEM: *OEM?
Для сценариев установки: *unattend.xml
Проверка х64 - наличие папки %WinDir%\SysWOW64
Проверка подсистемы х86 в х64 - наличие файла %WinDir%\SysWOW64\regedit.exe

Примерный файл конфигурации 78setup.cfg

DistrFolder1-3 - Folder names to search for distributives OS (unpacked)
ISOfolder1-3 - Folder names to search for ISO-images distributives OS
UtilitesPanel - The utilites panel: allow (any character) or hidden (0)
========================== CODEPAGE 1251 ===============================
DistrFolder1=\_ISO
DistrFolder2=\_ISO
DistrFolder3=\Мои дистрибутивы\Тут
IsoFolder1=\_ISO
IsoFolder2=\_ISO
IsoFolder3=\Тут образы
UtilitesPanel=1
LetterSwap=1
Sources.7z=10.0.10240
User1=Drive SnapShot
User1.86=Utilites\SnapShot.exe
User1.64=Utilites\SnapShot64.exe
User2=MS-DaRT Explorer
User2.86=Utilites\DaRTex.exe
User2.64=Utilites\DaRTex64.exe
User3=Partition Assistant
User3.86=Utilites\P_Assistant.exe
User3.64=Utilites\P_Assistant64.exe
User4=ShadowProtect
User4.86=Utilites\ShadowProtectPE.exe
User4.64=Utilites\ShadowProtect64.exe-Примечания:
1. Строчки 1-4 игнорируются (описание).
2. Если не нужно искать по 3 папкам, указываем только первую папку DistrFolder1/IsoFolder1 (а 2/3 оставляем пустыми), или 1-ю и 2-ю.
3. Если не указаны папки для поиска 1 и 2 (не заполнены либо переменная вообще отсутствует), производится поиск по-умолчанию в рабочей папке (все подкаталоги тоже обрабатываются) и в корневых папках _ISO. То же произойдет, если настроечный файл 78setup.cfg отсутствует.
4. Поиск папок ведется по всем дискам, и все найденные результаты будут добавлены в меню выбора. Для распакованных дистрибутивов дополнительно производится поиск в корневых каталогах Sources.
5. Если в качестве строки поиска указать только обратный слеш \, то производится поиск по всем дискам и всем каталогам/подкаталогам. Но это очень длительный процесс - до десятка минут (зависит от количества дисков/папок/файлов). Не рекомендуется к использованию - будет казаться, что утилита подвисла!!!
6. Для включения панели утилит служит параметр UtilitesPanel=1. При значении '0' или отсутствии файла конфигурации панель отключена.
7. Для включения режима автосортировки буковок дисков служит LetterSwap=1. При значении '0' или отсутствии этого параметра в файле конфигурации автосортировка отключена. Также отключается, если системный диск не X:\ или в системном каталоге присутствует файл letterswap*.* (тогда считается, что в WinPE есть свой метод сортировки). Результат автосортировки: при наличии ОС на любом из HDD буквы будут отсортированы согласно ОС, при отсутствии ОС - вначале разделы первого HDD (активный раздел - первым), потом - второго, и т.д.., потом - CD/DVD, в последнюю очередь - флешки и USB-HDD (начиная с буковки Q).
8. Для указания версии заготовок Sources*.7z служит параметр Sources.7z=10.0.10240. Параметр необязателен, при его отсутствии версия в 3-в) в "Выбор параметров установки" не указывается.
9. Для указания имени кнопки пользовательской утилиты 1 служит User1= (в примере Drive SnapShot), при этом в User1.86 указываем путь запуска х86-версии утилиты, а в
User1.64 - х64 версии (для х64 с поддержкой подсистемы х86 допустимо использование х86-версии, для этого в User1.64 указываем то же, что и в User1.86). Для пользовательских утилит 2-4 - аналогично.

* Можно указать путь:

1. Для любой папки на том же разделе, что и 78setup (используем переменную %CurDrv%). Например, %CurDrv%\2k10\Programs-2k10\FileManager\TotalCmd\TC.exe для запуска ТС из программного пакета 2k10.
2. Указать полный путь - т.е., только для программ на системном диске. Например, X:\Program Files\TC\TC.exe.
3. Указать относительный путь (относительно папки, где лежит 78Setup.exe). Например, ..\..\2k10\Programs-2k10\FileManager\TotalCmd\TC.exe. "..\" - означает перейти на уровень выше, чем находится программа, "..\..\" - на два уровня.
* Даже при наличии пробелов или кирриличных символов путь в кавычки брать НЕ НУЖНО.
** Порядок переменных в файле конфигурации неважен.
*** Кодировка этого файла (если используются русские буквы в пути) 1251.

Перепаковка архивов Sources.7z и Sources64.7z

Архивы Sources и Sources64 на самом деле - самораспаковки SFX. Расширение 7z используется только для того, чтобы любопытные не запустили случайно.
Как их перепаковать под свои задачи:
1. Нам понадобится 7z spliter. Если не найдете, он есть в ядрах из сборки 2k10 под именем z7.exe. Либо можно скачать тут.
2. Вначале меняем расширение оригиналов на .exe, т.е. Sources.7z -> Sources.exe и Sources64.7z -> Sources64.exe
3. Разбираем оригиналы на три составляющие части: SFX-модуль, скрипт и собственно 7z-архив. Запускаем 7z spliter, выбираем в нем подопытного, отмечаем извлечение всех 3 частей.
4. Модифицируем 7z-архив с помощью 7-Zip, либо создаём новый. Для уменьшения размера можно поиграться различными параметрами упаковки.
Если нет такого желания - выбираем уровень сжатия "Ультра", метод сжатия LZMA (можно пробовать и LZMA2, но этот метод поддерживается не всеми SFX-модулями), максимальный размер слова и "Непрерывный" размер блока. При таких настройках для больших файлов обычно обеспечивается максимальное сжатие.
5. Собираем обратно SFX-архив командой
copy /b sources.sfx + sources.txt + sources.7z sources.exe
6. Желательно протестировать работоспособность самораспаковки. Если в системе имеется диск X:\, доступный под запись - просто запускаем созданный файл. Если такого нет - можно просто смонтировать любую папку как диск X:\ командой
SUBST X: C:\Test
Эта команда смонтирует папку C:\Test как диск X:\. После монтирования проверяем работу самораспаковки - на диске X:\ должна появиться папка Sources.
Отмонтировать позже несложно:
SUBST X: /d
Впрочем, делать это необязательно, после перезагрузки смонтированный диск пропадет.
7. Если всё работает, переименовываем наш файл в sources.7z и возвращаем в набор 78setup.
Справка на technet.microsoft.com по возможностям установки х64 из WinPE х32 и наоборот (учитываем, что WinPE64-установщики от MicroSoft не поддерживают х86-подсистему!).
Справка на technet.microsoft.com по ключам командной строки для setup.exe
Утилиту можно распространять без ограничения. Желательно указывать ссылку на эту страничку (мало ли - вдруг обновление утилиты или глюки будут).Скачать с обменника: v2.4 / v2.5
Вложение

Скачать 78Setup v2.5 из usbtor.ru

Вложение

English translation (from BalAngel) of the 78setup (v2.3) description

Вложение

Скачать 78Setup v2.4 из usbtor.ru

Вложение

Addon 1 (ShadowProtect) for v2.X (обновлено 04.01.2016)

Вложение

Addon 2 (Aomei Partition Assistant) for v2.X (обновлено 30.09.2015)



Последний раз редактировалось: Гость (2020-07-13 13:58), всего редактировалось 200 раз(а)

[Цитировать]

    Гость
  • Репутация:0

    [+] [-]
Новая версия, 78setup v2.4 test5(2), обновлена 21.11.2018.
Изменения: исправил ошибку переименования; отказался от wimlib, теперь анализ версии производится средствами DISM; анализируется билд (только для 10-ки); для 7-8-8.1-10 (до 1709 включительно) используется библиотека winsetup.dll 10.0.16299, для 10 (от 1803 и новее) - библиотека 10.0.17763.


Последний раз редактировалось: Гость (2018-11-24 21:42), всего редактировалось 2 раз(а)

[Цитировать]

    KottoSOFT
  • 206
  • Стаж: 9 лет 3 месяца
  • Сообщений: 562
  • Репутация:65

    [+] [-]
conty9,
Спасибо , ещё раз, а если в меню вызова вставить

Такой cmd

@Echo Off
cd /D "%~dp0"
IF EXIST "%ProgramFiles(x86)%" (
Start /d"%~dp0" 78Setup64.exe %*
) Else (
Start /d"%~dp0" 78Setup.exe %*
)
Будет адекватный вызов под разрядность?
Скажем в таком меню

Скриншоты

Скрин сравнения

Два файла бывшие grldr то тоже можно скопировать
А вообще то мне не спится сейчас протестирую и выложу скрины результата.

[Цитировать]

    Гость
  • Репутация:0

    [+] [-]
KottoSOFT, по разрядности - можно и так, можно и проще
@Echo Off
cd /D "%~dp0"
if exist %Windir%\SysWOW64 (start 78Setup64.exe) Else (start 78Setup.exe)
exit

[Цитировать]

    KottoSOFT
  • 206
  • Стаж: 9 лет 3 месяца
  • Сообщений: 562
  • Репутация:65

    [+] [-]
conty9,
Спасибо друг, в общем перебрал я архивы, там такое дело в окне spwizres.dll такая картина

была в SOURCEC64 я посмотрел ты один файл отредактировал в русском языке я отредактировал все во всех языках

Перепаковал и снова пробежался по установщикам

х86

х64

Если кому нужно архивы Здесь оба в одну папку сложил и закинул на яндекс.
conty9
Если намусорил в теме извиняюсь, почистишь тему если считаешь нужным
И небольшая художественная вольность под свою флешку

Скриншоты




Последний раз редактировалось: KottoSOFT (2018-11-21 15:24), всего редактировалось 1 раз

[Цитировать]

    Гость
  • Репутация:0

    [+] [-]
78setup v2.4 test6.
Изменения: добавил иконку 48*48; изменил поиск дистрибутивов при монтировании образов дисков (теперь ищет не только в папке Sources, но и во всяких "именных" - например, SMBB); исправил ошибку при обработке некоторых файлов ответов.

Небольшой скрипт PECMD для сборщиков, у которых есть отдельная кнопка установки для каждой ОС (например, 'Multiboot Collection').

Скрипт позволяет определить билд 10-ки, и, в зависимости от результата, переименовать в winsetup.dll - либо winsetup.new (для установки новых билдов 10), либо winsetup.old (для старых билдов и 7-8-8.1). Используется штатный dism в папке среды установки X:\Sources.
ENVI DistP=C:\MyDistrib\install_10LTSB.esd
//////////////////////////////////////////////////////////////
IFEX X:\Sources\winsetup.old!X:\Sources\winsetup.new,!EXIT 1
EXEC* --wd:X:\Sources TEnvi=!X:\Sources\dism.exe /get-wiminfo /wimfile:"%DistP%" /index:1
TEAM MSTR TEnvi=74,0,%TEnvi%|RPOS DEnvi=: 10.0.,1,%TEnvi%
FIND $%DEnvi%>0,TEAM CALC #DEnvi=%DEnvi%+7|MSTR TEnvi=%DEnvi%,5,%TEnvi%!CALC TEnvi=0
IFEX $%TEnvi%<17000,IFEX X:\Sources\winsetup.old,TEAM FILE X:\Sources\winsetup.dll>>winsetup.new|FILE X:\Sources\winsetup.old>>winsetup.dll
IFEX $%TEnvi%>17000,IFEX X:\Sources\winsetup.new,TEAM FILE X:\Sources\winsetup.dll>>winsetup.old|FILE X:\Sources\winsetup.new>>winsetup.dll
Как его использовать: если кнопки установки - это скрипт PECMD, тогда просто оформляем скрипт подпрограммой (помещаем между _SUB CheckV и _END) и в каждой кнопке запуска установки прописываем его вызов (CALL CheckV) перед стартом setup.exe. Не забываем указать в переменной DistP путь к дистрибутиву (для примера я указал C:\MyDistrib\install_10LTSB.esd). Если же сделано иначе, но в системе имеется PECMD, тогда создаем на его базе свой скрипт (нужно сначала добавить поиск дистриба).

[Цитировать]

    timon45
  • 2835
  • Стаж: 8 лет 1 месяц
  • Сообщений: 87
  • Репутация:5

    [+] [-]
  • Откуда: Беларусь
59593

Небольшой скрипт PECMD для сборщиков, у которых есть отдельная кнопка установки для каждой ОС (например, 'Multiboot Collection').

Скрипт позволяет определить билд 10-ки, и, в зависимости от результата, переименовать в winsetup.dll - либо winsetup.new (для установки новых билдов 10), либо winsetup.old (для старых билдов и 7-8-8.1). Используется штатный dism в папке среды установки X:\Sources.
ENVI DistP=C:\MyDistrib\install_10LTSB.esd
//////////////////////////////////////////////////////////////
IFEX X:\Sources\winsetup.old!X:\Sources\winsetup.new,!EXIT 1
EXEC* --wd:X:\Sources TEnvi=!X:\Sources\dism.exe /get-wiminfo /wimfile:"%DistP%" /index:1
TEAM MSTR TEnvi=74,0,%TEnvi%|RPOS DEnvi=: 10.0.,1,%TEnvi%
FIND $%DEnvi%>0,TEAM CALC #DEnvi=%DEnvi%+7|MSTR TEnvi=%DEnvi%,5,%TEnvi%!CALC TEnvi=0
IFEX $%TEnvi%<17000,IFEX X:\Sources\winsetup.old,TEAM FILE X:\Sources\winsetup.dll>>winsetup.new|FILE X:\Sources\winsetup.old>>winsetup.dll
IFEX $%TEnvi%>17000,IFEX X:\Sources\winsetup.new,TEAM FILE X:\Sources\winsetup.dll>>winsetup.old|FILE X:\Sources\winsetup.new>>winsetup.dll
Как его использовать: если кнопки установки - это скрипт PECMD, тогда просто оформляем скрипт подпрограммой (помещаем между _SUB CheckV и _END) и в каждой кнопке запуска установки прописываем его вызов (CALL CheckV) перед стартом setup.exe. Не забываем указать в переменной DistP путь к дистрибутиву (для примера я указал C:\MyDistrib\install_10LTSB.esd). Если же сделано иначе, но в системе имеется PECMD, тогда создаем на его базе свой скрипт (нужно сначала добавить поиск дистриба).
а можно такой же только для cmd, т.к. у меня к примеру используется такая весч
@echo off
setlocal enabledelayedexpansion
SET DD=sources
SET IN=NI
for %%I in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
set IP=%%I:\!DD!
dir /d !IP!\install.wim&&set IN=!IP!\install.wim
dir /d !IP!\install.esd&&set IN=!IP!\install.esd
dir /d !IP!\install.swm&&set IN=!IP!\install.swm
dir /d !IP!\install.rg&&set IN=!IP!\install.rg
IF !IN! NEQ NI goto :INST
)
IF %IN% EQU NI (
start /b %Windir%\no.cmd
pause
pause
goto:RBT
)
:INST
echo %IP%
if exist %IP%\OEM\nul SET OEM=/m:%IP%\OEM
if exist %IP%\$OEM$\nul SET OEM=/m:%IP%\$OEM$
set ST=X:\Sources\Setup.exe
if not exist %ST% goto :BAD
cd /d %IP%
%ST% /installfrom:%IN% %OEM%
goto :RBT
:BAD
dir X:\ /b
echo Cannot find %ST% !
echo.
:RBT
exit
@echo Press a key to reboot now...
pause
wpeutil reboot
pause
:QUIT
exit

[Цитировать]

    sergeysvirid
  • 104
  • Стаж: 9 лет 4 месяца
  • Сообщений: 2499
  • Репутация:127

    [+] [-]
  • Откуда: 65 регион (GMT+11)
conty9, timon45, Sergei Strelec,
Привет! aa
conty9,
Володя, проверил последнюю версию (v2.4 test6) на корректность запуска установок Windows (корпоративная) от 7-10 (1709) до 10 (1803) (x86/x64)
Во всех случаях установщик отлично проходит этап с лиц.согл.
Спасибо, как всегда профессионально проделанная работа!!! ay az
Наверное можно зафиналить? ab
timon45,
А посредством чего запускается скрипт?
Смотрю в скрипте не указана подпапка, следовательно стандартная установка запуска install.wim/esd из sources через StartNet.cmd?
Если так, то можете прям в своём скрипте прописать как то так:

Скрипт для запуска установки Windows 7-10 (1709)

@echo off
setlocal enabledelayedexpansion
SET DD=sources
SET IN=NI
for %%I in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
set IP=%%I:\!DD!
dir /d !IP!\install.wim&&set IN=!IP!\install.wim
dir /d !IP!\install.esd&&set IN=!IP!\install.esd
dir /d !IP!\install.swm&&set IN=!IP!\install.swm
dir /d !IP!\install.rg&&set IN=!IP!\install.rg
IF !IN! NEQ NI goto :INST
)
IF %IN% EQU NI (
echo ERROR - COULD NOT FIND INSTALL.WIM(ESD,SWM) in %DD% folder!
pause
pause
goto:RBT
)
:INST
echo %IP%
if exist X:\sources\winsetup.old rename X:\sources\winsetup.dll winsetup.new&&rename X:\sources\winsetup.old winsetup.dll
if exist %IP%\autounattend.xml SET UN=/unattend:%IP%\autounattend.xml
if exist %IP%\unattend.xml SET UN=/unattend:%IP%\unattend.xml
if exist %IP%\_unattend.xml SET UN=/unattend:%IP%\_unattend.xml
if exist %IP%\OEM\nul SET OEM=/m:%IP%\OEM
if exist %IP%\$OEM$\nul SET OEM=/m:%IP%\$OEM$
set ST=X:\Sources\Setup.exe
if not exist %ST% goto :BAD
cd /d %IP%
%ST% /installfrom:%IN% %OEM% %UN%
goto :RBT
:BAD
dir X:\ /b
echo Cannot find %ST% !
echo.
:RBT
exit
@echo Press a key to reboot now...
pause
wpeutil reboot
pause
:QUIT
exit

Скрипт для запуска установки Windows 10 (1803-1809)

@echo off
setlocal enabledelayedexpansion
SET DD=sources
SET IN=NI
for %%I in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
set IP=%%I:\!DD!
dir /d !IP!\install.wim&&set IN=!IP!\install.wim
dir /d !IP!\install.esd&&set IN=!IP!\install.esd
dir /d !IP!\install.swm&&set IN=!IP!\install.swm
dir /d !IP!\install.rg&&set IN=!IP!\install.rg
IF !IN! NEQ NI goto :INST
)
IF %IN% EQU NI (
echo ERROR - COULD NOT FIND INSTALL.WIM(ESD,SWM) in %DD% folder!
pause
pause
goto:RBT
)
:INST
echo %IP%
if exist X:\sources\winsetup.new rename X:\sources\winsetup.dll winsetup.old&&rename X:\sources\winsetup.new winsetup.dll
if exist %IP%\autounattend.xml SET UN=/unattend:%IP%\autounattend.xml
if exist %IP%\unattend.xml SET UN=/unattend:%IP%\unattend.xml
if exist %IP%\_unattend.xml SET UN=/unattend:%IP%\_unattend.xml
if exist %IP%\OEM\nul SET OEM=/m:%IP%\OEM
if exist %IP%\$OEM$\nul SET OEM=/m:%IP%\$OEM$
set ST=X:\Sources\Setup.exe
if not exist %ST% goto :BAD
cd /d %IP%
%ST% /installfrom:%IN% %OEM% %UN%
goto :RBT
:BAD
dir X:\ /b
echo Cannot find %ST% !
echo.
:RBT
exit
@echo Press a key to reboot now...
pause
wpeutil reboot
pause
:QUIT
exit
Если для установки Windows используется boot.wim от 10 (1709) (или ниже), то возьмите тогда из boot.wim от 10 (1809) => boot.wim\sources\winsetup.dll, переименуйте его в winsetup.new и закиньте его в boot.wim от 10 (1709) (или ниже)
Если для установки Windows используется boot.wim от 10 (1803) (или выше), то возьмите тогда из boot.wim от 10 (1709) (или ниже) => boot.wim\sources\winsetup.dll, переименуйте его в winsetup.old и закиньте его в boot.wim от 10 (1803) (или выше)
...Как-то примерно так

[Цитировать]

    timon45
  • 2835
  • Стаж: 8 лет 1 месяц
  • Сообщений: 87
  • Репутация:5

    [+] [-]
  • Откуда: Беларусь
sergeysvirid, я нечто подобное и сделал но хотел реализовать анализ версии дистрибутива (install.esd) посредством того же wimlib-imagex а уже потом переименование (переименование библиотеки уже сделал) winsetup.dll используя cmd

[Цитировать]

    Гость
  • Репутация:0

    [+] [-]
78setup v2.4 test 7.
timon45, если честно - я не особо силён в бантиках, чтобы обработать выхлоп DISM. Тем более, что результат выхлопа сильно зависит от локализации последнего. А вот на wimlib-imagex - вполне реально (там выхлоп всегда ENG), можно подсмотреть кусок кода в WInst
Sergei Strelec, привет, Серёга! В архивах test7 есть изменения: добавил ещё пару api-ms-*.dll и заменил smiengine.dll на 10-ную.
sergeysvirid, хочется до финала дошлифовать и учесть все замечания. По поводу скрипта (скрипт PECMD для сборщиков...): его плюс в том, что скрипт сам переименует библиотеку, ориентируясь на билд. Т.е., не будет нужды делать две кнопки для 10-ки. Просто добавляем вызов скрипта во все кнопочки установки (это нужно, если пользователь запустил вначале новую 10-ку, а потом передумал и ставит что-то старше).
Небольшой лайфхак. Если под х64 РЕ нужно иметь под рукой два варианта "комплектной" среды установки (х86 + х64), поступаем просто: перед запуском 78setup стартуем Sources.7z (start Sources.7z). Тогда среда х86 распакуется и будет доступна как "родная" среда РЕ. Ну а Sources64.7z - как комплектная.

[Цитировать]

    dialmak
  • 2607
  • Стаж: 8 лет 2 месяца
  • Сообщений: 842
  • Репутация:40

    [+] [-]
conty9,
чтобы обработать выхлоп DISM. Тем более, что результат выхлопа сильно зависит от локализации последнего
Ну для этого прилепилипи спецом ключ

[Цитировать]

    KottoSOFT
  • 206
  • Стаж: 9 лет 3 месяца
  • Сообщений: 562
  • Репутация:65

    [+] [-]
Протестировал версию 78setup v2.4 test6. отрабатывает на ура

Скриншоты тестирования на оригинальных архивах

По просьбе нескольких пользователей внёс некоторые косметические изменения создавать отдельную тему считаю не целесообразно, те кому интересно и отслеживают тему при желании могут забрать здесь и поменять в папке 78setup\Utilites надеюсь Conty9 не против

Скриншоты изменений

Здесь оба архива и папка $OEM$ которая в случае установки Windows 7 поддержит этот же интерфейс до окна ввода имени компьютера.
Ну а при установке версий от 8 и выше эта папка и не нужна, как известно после первой установки всё остальноё делает программа установки Windows все наши файлы уже на системном диске.
YaDisk

[Цитировать]

    sergeysvirid
  • 104
  • Стаж: 9 лет 4 месяца
  • Сообщений: 2499
  • Репутация:127

    [+] [-]
  • Откуда: 65 регион (GMT+11)
59626По поводу скрипта (скрипт PECMD для сборщиков...): его плюс в том, что скрипт сам переименует библиотеку, ориентируясь на билд. Т.е., не будет нужды делать две кнопки для 10-ки.
conty9,
Володя привет! aa
Так здесь то самая "закавыка" и получается.
У меня же на каждой кнопке для 10-ки запускается свой w10*.cmd с поиском по всем разделам папки с install.wim/esd и запуском setup.exe из него же.
А в твоём примере в "скрипте PECMD для сборщиков" как бы подразумевается уже известный и абсолютный путь до файла:
ENVI DistP=C:\MyDistrib\install_10LTSB.esd
//////////////////////////////////////////////////////////////
IFEX X:\Sources\winsetup.old!X:\Sources\winsetup.new,!EXIT 1
EXEC* --wd:X:\Sources TEnvi=!X:\Sources\dism.exe /get-wiminfo /wimfile:"%DistP%" /index:1

Так вот вопрос. Как я привяжу к кнопке определение версии билда из "%DistP%", если его сначала нужно найти батником w10*.cmd, (который в принципе сразу и запускает саму установку)?
Получается, что это батник нужно править на определение версии билда, а не в скрипте PECMD привязывать это определение...

[Цитировать]

    Гость
  • Репутация:0

    [+] [-]
sergeysvirid, есть два варианта решения. Первый, имхо, самый верный: а кто мешает поиск происк средствами PECMD? Второй: если уж хочется бантиком искать - тоже не проблема, можно передать найденный путь параметром. Т.е., примерно так - в бантике перед вызовом установки добавляем вызов скрипта start pecmd.exe myscript.wcs %IN%. А в скрипте первой строчкой указываем ENVI DistP=%*1 (т.е., присвоить переменной %DistP% найденное значение %IN%).


Последний раз редактировалось: Гость (2018-11-24 15:26), всего редактировалось 1 раз

[Цитировать]

    timon45
  • 2835
  • Стаж: 8 лет 1 месяц
  • Сообщений: 87
  • Репутация:5

    [+] [-]
  • Откуда: Беларусь
sergeysvirid, вот, вот и я о том же, но считаю что это обсуждение выходит за рамки данной темы. для себя пока сделал кнопку переключения так сказать в полуавтоматическом режиме.
@echo off
set winsetup=%HOMEDRIVE%\sources\winsetup
rem для новых дистрибутивов
if EXIST "%winsetup%.new" (
ren "%winsetup%.dll" winsetup.old
ren "%winsetup%.new" winsetup.dll
start /b nircmdc.exe infobox "Можно устанавливать новые дистрибутивы Windows 10 1803 и выше" "Внимание!"
) Else (
if EXIST "%winsetup%.old" (
rem для старых дистрибутивов
ren "%winsetup%.dll" winsetup.new
ren "%winsetup%.old" winsetup.dll
start /b nircmdc.exe infobox "Можно устанавливать дистрибутивы Windows 7-10 1709" "Внимание!"
)
)
exit
можно определять версию через wimlib параметром info анализировать нужно выхлоп
Major Version: 6
Minor Version: 1
и вставить в скрипт перед
%ST% /installfrom:%IN% %OEM% %UN%

[Цитировать]

    Гость
  • Репутация:0

    [+] [-]
sergeysvirid, "совершенству нет предела". ))

Сделал для замены w8132.cmd скрипт, имена переменных те же

TEAM ENVI DD=_WIN|ENVI MM=8132|ENVI IN=NI
FORX !@%DD%\%MM%,TEnvi,0,
{* FORX * install.swm install.esd install.wim,DEnvi,IFEX %TEnvi%\%DEnvi%,ENVI IN=%TEnvi%\%DEnvi%
FIND $%IN%<>NI,EXIT FORX
}
FIND $%IN%=NI,TEAM EXIT|MESS ERROR - COULD NOT FIND INSTALL.WIM(ESD,SWM) in %DD%\%MM% folder!
FDIR IP=%IN%
FORX * autounattend.xml unattend.xml _unattend.xml,DEnvi,IFEX %IP%\%DEnvi%,ENVI UN=%IP%\%DEnvi%
FORX * OEM $OEM$,DEnvi,IFEX %IP%\%DEnvi%\,ENVI OEM=%IP%\%DEnvi%
ENVI ST=X:\Sources\Setup.exe
IFEX %IP%\Setup.exe,ENVI ST=%IP%\Setup.exe
IFEX %ST%,!TEAM EXIT|MESS ERROR - Cannot find %ST% !
FIND $%ST%=X:\Sources\Setup.exe,CALL CheckV
EXEC --wd:"%IP%" ="%ST%" /installfrom:"%IN%" /m:"%OEM%" /unattend:"%UN%"
MESS Press "Y" to reboot now... #YN $Y
FIND $%YESNO%=Yes,SHUT R
EXIT
_SUB CheckV
IFEX X:\Sources\winsetup.old!X:\Sources\winsetup.new,!EXIT 1
EXEC* --wd:X:\Sources TEnvi=!X:\Sources\dism.exe /get-wiminfo /wimfile:"%IN%" /index:1
TEAM MSTR TEnvi=74,0,%TEnvi%|RPOS DEnvi=: 10.0.,1,%TEnvi%
FIND $%DEnvi%>0,TEAM CALC #DEnvi=%DEnvi%+7|MSTR TEnvi=%DEnvi%,5,%TEnvi%!CALC TEnvi=0
IFEX $%TEnvi%<17000,IFEX X:\Sources\winsetup.old,TEAM FILE X:\Sources\winsetup.dll>>winsetup.new|FILE X:\Sources\winsetup.old>>winsetup.dll
IFEX $%TEnvi%>17000,IFEX X:\Sources\winsetup.new,TEAM FILE X:\Sources\winsetup.dll>>winsetup.old|FILE X:\Sources\winsetup.new>>winsetup.dll
_END
И ещё: необязательно для каждой ОС делать отдельный скрипт. Красивше всё это сделать одним скриптом, ведь, по сути, меняются только подкаталоги.

Страница 39 из 51


Показать сообщения:    

Текущее время: 25-Апр 23:39

Часовой пояс: UTC + 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы можете скачивать файлы