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

    Ander_73
  • 15549
  • Стаж: 7 лет 2 месяца
  • Сообщений: 3609
  • Репутация:127

    [+] [-]
"Возвращается мужик из командировки, а у него дома винда переставлена."-*** WInst ***-
Назначение проекта:
    Установка Windows 7-10 через:
  • Автоматизацию запуска стандартной программы установки Windows setup.exe с ключами командной строки. Для установки новых редакций Windows 10 применяется метод подмены стандартной библиотеки winsetup.dll.
  • Развёртывание Windows на жёсткий диск (как с возможностью его разметки, так и на уже подготовленный) или в контейнер VHD с помощью программы wimlib-imagex.exe и последующим добавлением в список загрузки.

Представляет собой:
    Командный бат-файл.

Область применения:
  • Операционная система:
    • установка через setup.exe: WinPE 7-10
    • развёртывание через wimlib-imagex.exe: Win7-10, WinPE 7-10
  • Разрядность: x86/x64

Загрузочная среда BootMedia

Содержимое папки:
  • Загрузочные образы (x86 и x64) на базе Windows 1909, 2009, 2022
  • Загрузочный образ на базе Windows 8 x86
  • Загрузочный образ на базе Windows 7 x86 с комплектом драйверов USB3/SATA-RAID/NVMe
  • Обновлённый скрипт создания загрузочного образа
При старте происходит поиск (и запуск, в случае успеха) по всем дискам скрипта "$:\programs\WInst\*.cmd" или "$:\WInst\*.cmd".Загрузить BootMedia

readme.txt

0. Назначение
----------
Установка Windows 7-10 через:
- автоматизацию запуска стандартной программы установки Windows setup.exe с ключами
командной строки. Для установки новых редакций Windows 10 применяется метод
подмены стандартной библиотеки winsetup.dll
- развёртывание Windows на жёсткий диск (как с возможностью его разметки, так и на
уже подготовленный) или в контейнер VHD с помощью программы wimlib-imagex.exe и
последующим добавлением в список загрузки.
1. Терминология
------------
Папка дистрибутива (ПД)
~~~~~~~~~~~~~~~~~~~~~~~
Папка, в которой содержатся:
- установочный файл с расширением WIM, ESD, SWM. Обычно это "install.esd"
- файл описания (необязательно) {формат файла описания см. в "Примечания"}
- папка $OEM$ (необязательно)
- файл ответов unattend.xml (необязательно)
- установочный комплект setup.exe (необязательно)
Допускается наличие в ПД множественных установочных файлов с файлами описаниями.
Общая папка (ОП)
~~~~~~~~~~~~~~~~
Папка, в которой содержатся:
- папки дистрибутивов
- папка $OEM$ (необязательно)
- файл(-ы) ответов unattend.xml (<любое_имя>.xml)
2. Концепция
---------
Возможны три варианта расположения ПД:
Классический
~~~~~~~~~~~~
ОП находится в произвольном месте флешки. Например:
F:\
ОП\
ПД\
ПД\
ПД\
...
Портативный
~~~~~~~~~~~
ОП называется "WInstall" и находится в папке с установочным скриптом WInst
"WInst.cmd". Например:
F:\
Folder\
WInst\
WInstall\
ПД\
ПД\
ПД\
...
WInst.cmd
Произвольный
~~~~~~~~~~~~
Папка ОП отсутствует, ПД располагаются в любом месте флешки. Например:
F:\
Folder\
ПД
Folder1\
Folder2\
ПД
ПД
Folder3\
ПД
3. Выполнение
----------
Поиск и отображение
~~~~~~~~~~~~~~~~~~~
Сначала выполняется поиск ПД, расположенных в варианте "классический".
Для указания расположения ОП служит файл dirlist.txt
Например, у нас есть флешка с такой структурой папок:
F:\
Install\
Windows\
Win7x86\
Win81x64\
Win10x64\
В данном примере ОП - это F:\Install\Windows\
Отбрасываем букву диска с двоеточием и завершающий слэш, получаем "\Install\Windows"
Именно это и записываем в файл dirlist.txt:
\Install\Windows
Если ОП больше одной, то добавляем в dirlist.txt соответствующие строки.
Допускается указание в dirlist.txt непосредственно ПД (это целесообразно, если ПД
содержит множественные установочные файлы). Если брать структуру папок из примера выше,
то записываем в dirlist.txt:
\Install\Windows\Win7x86\@
\Install\Windows\Win81x64\@
\Install\Windows\Win10x64\@
Далее выполняется поиск ПД, расположенных в варианте "портативный" (папка WInstall).
Если поиск в вариантах "классический" и "портативный" не дал результатов, и в папке
программы существует файл fudlist.txt (см. ниже), то информация о дистрибутивах берётся
из него.
Варианты отображения найденных дистрибутивов:
- если для установочного файла существует файл описания, то отображается его содержимое
- если файла описания нет, то берётся информация из первого индекса дистрибутива
Дополнительные возможности
~~~~~~~~~~~~~~~~~~~~~~~~~~
Переключить режим отображения: "версия/путь" - переключить вид с информации из
первого индекса на полный путь к
дистрибутиву.
Выбрать дистрибутив вручную - самостоятельно выбрать файл дистрибутива (файл с
расширением ESD, WIM, SWM).
Искать дистрибутивы на выбранных дисках - поиск на выбранных дисках файлов с
расширением WIM, ESD, SWM и размером
более 1 000 000 000 байт.
Предварительная разметка диска - разметить новый (или без сохранения данных)
накопитель с использованием сценариев diskpart.
Создать/Открыть VHD(X) - создать новый/открыть существующий VHD(X)-файл и
присоединить его к системе для последующей установки
в него Windows.
Техническое обслуживание - добавить раздел/VHD-контейнер в загрузчик Windows;
интегрировать драйверы/установочные пакеты;
удалить/откатить установленные драйверы;
восстановить загрузочные записи раздела/диска.
Поиск используется, в основном, при "произвольном" расположении ПД. Результаты
поиска записываются в файл fudlist.txt и могут быть использованны при последующих
запусках WInst (в отличие от dirlist.txt, содержит полные пути (без диска) к
найденным дистрибутивам). Файл fudlist.txt можно конвертировать в dirlist.txt. Для
этого переименуйте:
fudlist.txt -> fud2dir.txt (или просто fud2dir) для перезаписи dirlist.txt
fudlist.txt -> fud4dir.txt (или просто fud4dir) для добавления к dirlist.txt
и запустите WInst.
Предупреждение установщика о невозможности использовать раздел VHD для установки
Windows нужно игнорировать.
Опция "Fix boot":
* MBR/PBR (PBR) - обновить только загрузочные записи.
* MBR/PBR + update BCD - обновить загрузочные записи и BCD.
* Advanced Boot Options - включить при загрузке меню "Advanced Boot Options".
- для раздела "WINDOWS" обновляется загрузочная запись раздела;
- для раздела "BOOTLOADER" обновляется загрузочная запись раздела и MBR диска,
содержащего раздел "BOOTLOADER";
- после применения "Advanced Boot Options" в корне раздела "WINDOWS" создаётся
файл "AdvBootOpt_off.cmd" для отключения опции.
При интеграции драйверов средствами WInst в папке "\Windows\Temp" целевой системы
создаётся файл "WInst_Add_Drivers.bak", содержащий список драйверов, установленных
до интеграции. Таким образом, откат установленных драйверов - это удаление всех
драйверов, которых нет в данном списке.
Опции установки
~~~~~~~~~~~~~~~
Дистрибутив - переключение вида "версия/путь"
Папка $OEM$ - может располагаться в трех местах: ПД, ОП, WInstall. Соответственно,
будет отображаться как: $OEM$, ..\$OEM$, _WInst_\$OEM$
Если существуют все три варианта, нужный можно выбрать вручную.
Файл ответов - аналогично папке $OEM$. Будет отображаться как:
unattend.xml, ..\unattend.xml, _WInst_\unattend.xml
В папках ОП и WInstall может быть несколько файлов с расширением xml,
нужный можно выбрать вручную.
Установщик - Если в ПД существует setup.exe, то он будет предложен для запуска.
Выбрать встроенный setup.exe можно вручную.
Если в файле настроек определены переменные "setup_x86.exe" и/или
"setup_x64.exe", содержащие путь к setup.exe распакованного комплекта
установки, то именно этот комплект будет использован в качестве
встроенного установщика.
Проверка целостности - перед установкой будет запущена проверка установочного файла.
Перезагрузка - можно отменить перезагрузку после установки или развёртывания
дистрибутива.
Лицензия EI.cfg - переключение между Volume/Retail
Выбор языка - язык установки берётся из первого индекса дистрибутива или
может быть выбран вручную.
Выбор Winsetup.dll - по умолчанию "прямой". Если в процессе установки появляется
ошибка "Не найдено лицензионное соглашение", то можно сменить
на "обратный".
4. Развёртывание
-------------
Суть развёртывания состоит в:
- распаковке файла дистрибутива на раздел жёсткого диска (или в контейнер VHD)
- добавлении нового пункта в меню загрузки Windows (или создании этого меню)
Порядок действий:
1. Выбрать раздел, куда будет распакован дистрибутив;
2. Выбрать раздел, где находится (или будет создан) загрузчик;
3. Выбрать тип загрузки.
Разделы должны иметь файловую систему (нельзя использовать RAW)
Окно выбора раздела для распаковки дистрибутива содержит в "шапке" [ WINDOWS = ... ]
- если на разделе уже есть Windows, то будет предложено отформатировать раздел
Окно выбора раздела для установки загрузчика содержит в "шапке" [ BOOTLOADER = ... ]
- можно не устанавливать/не изменять загрузчик
Тип загрузки может быть:
* ALL - загружать систему и в режиме BIOS, и в режиме UEFI
* BIOS - загружать систему только в режиме BIOS
* UEFI - загружать систему только в режиме UEFI
Опции развёртывания
~~~~~~~~~~~~~~~~~~~
New BCD - создать новый файл конфигурации BCD (вместо добавления новой записи в
существующую конфигурацию) и обновить файлы загрузчика.
Drivers - операции с драйверами после выполнения развёртывания.
Reboot - перезагрузка после завершения развёртывания.
Операции с драйверами:
* Добавление - выбрать папку с распакованными драйверами, которые будут
интегрированы в развёрнутую Windows. Дополнительно папка может
содержать установочные пакеты Windows (файлы с расширением ".msu"
или ".cab"), которые также будут интегрированы.
* Удаление - удалить все сторонние драйверы из развёрнутой Windows.
* Удаление+добавление - комбинация предыдущих пунктов.
5. Состав:
------
docs - папка с файлами справки.
packs - папка с комплектами установки и вспомогательными утилитами.
schemes - папка со сценариями diskpart для "Предварительной разметки диска".
WInst.cmd - файл запуска.
Опционально:
~~~~~~~~~~~
dirlist.txt - список ОП и ПД для поиска по "классическому" варианту.
settings.txt - файл настроек для изменения значений параметров, используемых
по умолчанию.
WInstall - папка для размещения общих $OEM$, unattend.xml и ПД для "портативного"
варианта расположения ПД.
6. Примечания
----------
- предназначено для запуска:
* для установки через setup.exe: из-под WinPE 7-10 x86/x64
* для установки через развёртывание: из-под Win7-10 x86/x64 и WinPE 7-10 x86/x64
- поиск папок из dirlist.txt и файлов из fudlist.txt производится по всем дискам
- в случае "произвольного" расположения ПД, также можно пользоваться общими $OEM$ и
unattend.xml из папки WInstall
- при "Развёртывании" и "Техническом обслуживании" создаются резервные копии файла
конфигурации BCD в папках "\Boot\{WInst}.bak" и "\EFI\Microsoft\Boot\{WInst}.bak"
для BIOS и UEFI соответственно.
Формат файла описания:
- кодировка WIN-1251
- имя файла описания = имя установочного файла + расширение "txt"
Например: "install.esd.txt"
- содержание:
* первая строка - описание самой установки
* следующие строки - описания редакций (необязательно) в формате "N=Title"
Например, содержимое "install.esd.txt":
Windows 7 SP1 (x86-x64) Russian
1=Windows 7 (x86) Максимальная
2=Windows 7 (x86_64) Максимальная
7=Windows 7 (x86) Домашняя базовая
8=Windows 7 (x86_64) Домашняя базовая
При развёртывании редакции, для которой есть описание в файле описания, новый пункт
в меню загрузки Windows будет называться как описание редакции, а не стандартно
"Windows 7" или "Windows 10". Если такая редакция будет развёрнута на одном ПК
несколько раз, то к названию будет добавляться индекс [N], где N=2,3 и.т.д.

Дополнительная информация

    Установщик Windows (ver. 10.0.10586) взят из комплекта WinSetup2k10 от korsak7 с добавлением всех языковых пакетов.

Благодарности

    dimo70 за тестирование и выявление всякого.
    goga8686 за тестирование и видеролик про "Развёртывание".
    BalAngel за английские переводы файлов справки и настроек.
    Всем камрадам, кто принимал участие в тестировании и подкидывал идеи.

Видеоролики

Развёртывание
DriverPack для 7/8.1/10
NVMe/SATA-RAID/USB3
Загрузить WInst


Последний раз редактировалось: Ander_73 (2021-07-31 22:25), всего редактировалось 33 раз(а)

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

    Ander_73
  • 15549
  • Стаж: 7 лет 2 месяца
  • Сообщений: 3609
  • Репутация:127

    [+] [-]
dimo70, а там и сборка 2к10 идёт как аддон cb
И TwinBoot идёт как аддон (ты же просил универсальную среду для запуска приложений)
(Акронисы пока не работают толком, но это надо просто отладить)

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

    dimo70
  • 17296
  • Стаж: 6 лет 4 месяца
  • Сообщений: 3990
  • Репутация:26

    [+] [-]
  • Откуда: BG
Ander_73,
Вот это будет замечательно! ab
Я сейчас пользую WInst как ядро на базе win 10 64 бит EN, которое очень класно получается с FullInstPrep. Запускаю автоматически лишь программу для проверки смарта, partition wizzard для работу с дисками и на всякий случай мой любимы 78setup с его тулами для английских файлов. Кроме етого на флещку записал несколько тулов, для сброса паролей учетных записей и прочее. Этого пока достаточно. Но было бы лучше усовершенствовать это дело. Не сомневаюсь, все будет. Большой плюс WInst, кроме быстрой работы, так и в универсальности языков, что в 78setup, к сожалению, так и не получилось. Про это говорил и KottoSOFT.

_________________
Подпись отключена за нарушение правил форума

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

    user-789
  • 2551
  • Стаж: 8 лет 3 месяца
  • Сообщений: 140
  • Репутация:1

    [+] [-]
Ander_73, Приветствую aa Посоветуй чистую winpe для твоего проекта ???

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

    Ander_73
  • 15549
  • Стаж: 7 лет 2 месяца
  • Сообщений: 3609
  • Репутация:127

    [+] [-]
user-789, дык в шапке же есть BootMedia. Это как раз оригинальные ПЕ-шки от MS, в которые вставлен поиск и запуск WInst.

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

    user-789
  • 2551
  • Стаж: 8 лет 3 месяца
  • Сообщений: 140
  • Репутация:1

    [+] [-]
Ander_73,
А для чего нужны файлы :
make
boot_x64
boot_x86

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

    Ander_73
  • 15549
  • Стаж: 7 лет 2 месяца
  • Сообщений: 3609
  • Репутация:127

    [+] [-]
user-789, маке - это батник для изготовления boot.wim для WInst из любого дистрибутивного boot.wim (7-10)
а остальные - это файлы "обвязки". Всякие там boot.sdi, BCD и прочее. Чтобы сделать загрузочную флешку "с нуля".
---
Где-то в теме есть FullInstPrep, он загрузочную флешку под WInst создает почти автоматом.
Или мой новый проект - Multi-loaders flash, там WInst вообще идёт как аддон.

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

    Ander_73
  • 15549
  • Стаж: 7 лет 2 месяца
  • Сообщений: 3609
  • Репутация:127

    [+] [-]
Обновление утилиты InstPrep
  • реализация меню через WSelect
  • если в системе найден диск с папками \WInst и \distros, то будет предложено скопировать полученный на выходе install.esd сразу в \distros (с созданием соотв. подпапки)
  • добавлено скачивание дистрибутивов из темы Windows 10, 8.1, 7 в одном ISO-образе камрада sergeysvirid (скачивание идёт с ЯД конкретного выбранного дистриба)

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

    dimo70
  • 17296
  • Стаж: 6 лет 4 месяца
  • Сообщений: 3990
  • Репутация:26

    [+] [-]
  • Откуда: BG
Ander_73,
А будет развитие проекта FullInstPrep? Очень понравился. ab
Можно там в Extras menu еще добавить кое что. А и есть такое предложение.
При загрузки уина не пользоватся Shell.txt для запуска дополнительных программ, а прямо в меню WInst с ESD файлами рядом чтобы появлялись пункты несколько программ по выбору. И если можно через FullInstPrep заранее подготовить програмы через меню. Например CristalDiskInfo и PartitionWizzard. У них оба х86 и х64 портативки есть.
Возможно ето технически трудно. Я не знаю. Просто как идея. aa
Вот например у conty9 в 78setup есть возможность справо включить дополнительные кнопки с тулами. Кроме того у него можно загрузить прямо с ISO файла. Но он так и не захотел увеличить число языков. ac

Комментарий от Гость


Я уже Вам ЧЕТЫРЕ раза писал: если нужен болгарский, выложите от него MUI ! Ответа нет - будто горохом об стенку.

_________________
Подпись отключена за нарушение правил форума

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

    Ander_73
  • 15549
  • Стаж: 7 лет 2 месяца
  • Сообщений: 3609
  • Репутация:127

    [+] [-]
60488А будет развитие проекта FullInstPrep?
Скорее всего, нет. Там тупиковая ветвь. Идёт развитие MLF. Там и подготовка флешки, и система аддонов, и всё такое прочее.
Другими словами: подготовив флешку в MLF и установив аддон WInst получим то же, что делает FullInstPrep. Только аддонов у MLF уже гораздо больше. И вся система и концепция гораздо гибче, мощнее и прочая.
Никаких "программ по выбору" не будет.

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

    Ander_73
  • 15549
  • Стаж: 7 лет 2 месяца
  • Сообщений: 3609
  • Репутация:127

    [+] [-]
Обновление утилиты InstPrep
Полностью "мышиный" интерфейс.
Ничего принципиально нового, просто более "юзер френдли" ab
Скачать
---
UPD: 03.01.2019
- добавлено принудительное создание Integrity table для дистрибов
- в папку \distros теперь идёт сразу перемещение, а не копирование
- версия wimlib 13.0
- допускается перезапись (обновление) install.esd в папке \distros (актуально при поддержке дистров от sergeysvirid)

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

    Ander_73
  • 15549
  • Стаж: 7 лет 2 месяца
  • Сообщений: 3609
  • Репутация:127

    [+] [-]
dimo70, кстати, зацени комплектик (LaunchBar + PopSel, только х64):
Скачать
Распаковать в папку WInst. Папка WInst должна быть в корне, как положено.
---
Как обычно - это концепт. Можно напихать своего.

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

    Ander_73
  • 15549
  • Стаж: 7 лет 2 месяца
  • Сообщений: 3609
  • Репутация:127

    [+] [-]
Потихоньку "пилю" shell для WInst. "Причесал" менюшку. Наваял ещё один бессмысленный бат-ник (теперь входит в shell)

Fix USB

Ситуация: с помощью сторонних средств установили на ПК Windows 7/2008. После первой загрузки (внезапно!) выяснилось, что на ПК стоит USB3 и клава/мышь не работают. Казалось бы, есть отличная утиль от simplix (Win7USB3). Но есть нюанс. Она требует или интеграции в дистр, или при запуске из WinPE прописывает свой запуск в ветку RunOnce.
Но в нашем случае на экране горит приглашение ввести имя пользователя/сменить пароль Админа. То есть до выполнения RunOnce мы ёще не доползли. И вот теперь, выполнив из WinPE бантик, получим запуск Win7USB3 из ветки HKLM\SYSTEM\Setup. Подробности в readme
Скачать shell
Ссылка на shell, надеюсь, теперь постоянная. Будет дополняться. Уже входит составной частью в аддон WInst проекта MLF.
---
На всякий случай уточняю: если использовать shell или бат-ник сам по себе, то Win7USB3 нужно качать самостоятельно и поместить в папку к бантику, переименовав в Win7USB3+.exe
При установке же в составе аддона всё это будет выполнено автоматически, разумеется.

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

    Ander_73
  • 15549
  • Стаж: 7 лет 2 месяца
  • Сообщений: 3609
  • Репутация:127

    [+] [-]
Бат-ник запуска (мессага выше) сделал универсальным.
Порядок действий:
  • Загрузиться в WinPE
  • Положить в одну папку с батником файл для запуска (*.exe *.msi *.bat)
  • Запустить батник

Что делает:
  • Сохраняет ветку реестра HKLM\SYSTEM\Setup выбранной Windows
  • Помещает в ветку реестра HKLM\SYSTEM\Setup выбранной Windows запуск батника, который:
    • Запустит выбранную программу (из п.2 "Порядок действий")
    • Восстановит ветку реестра HKLM\SYSTEM\Setup
    • Удалит себя и выбранную программу
  • Удаляет из корня выбранной Windows файл hiberfil.sys*
*однозначное определение "Спящего режима" мне неизвестно, поэтому так.

Runner

@echo off
title Установка предзагрузчика
>nul 2>nul copy %systemroot%\system32\config\system nul|| goto err_notWinPE
cd /d "%~dp0"
set fname=& for %%i in (*.exe, *.msi, *.bat) do set "fname=%%i"
if not defined fname goto err_NoFile
set DiskList=& set Disks=&
for %%a 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 if %%a neq %SystemRoot:~0,1% ^
if exist %%a:\Windows\System32\config\system (
if defined DiskList set Disks=1
call set DiskList=%%DiskList%%,%%a
)
if not defined DiskList goto err_WinNotFound
set DiskList=%DiskList:~1%
set name=Установка "%fname%" в предзагрузку Windows
set line=& for /l %%i in (0,1,100) do (
call set "let=%%name:~%%i,1%%"
if defined let (call set line=%%line%%═) else goto next
)
:next
cls
echo/
echo %name%
echo %line%
echo/
if not defined Disks (
set WinPth=%DiskList%:\Windows\System32\config\system
goto next
)
echo/
echo Найдены диски с Windows:
echo ═══════════════════════
echo/
for %%j in (%DiskList%) do call :get_info %%j
echo/
set ask=& set /p "ask=Выберите диск (только буква): "
set WinPth=%ask%:\Windows\System32\config\system
if not exist "%WinPth%" goto err_NotSelect
:next
echo/
echo ══════════════════════════════════════════════════
echo Целевая система: %WinPth%
echo ══════════════════════════════════════════════════
echo/
set ask=& set /p "ask=Установить запуск '%fname%'? (1=Да/ 0=Нет): "
if "%ask%" neq "1" exit
echo/
reg.exe load  HKLM\111 %WinPth%|| goto err_RegLocked
reg.exe export  HKLM\111\Setup %tmp%\0.reg /y
reg.exe add  HKLM\111\Setup /v CmdLine /t REG_SZ /d "cmd.exe /c \Setup.cmd" /f
reg.exe add  HKLM\111\Setup /v SetupType /t REG_DWORD /d 2 /f
reg.exe unload  HKLM\111
set log=%WinPth:~0,2%\Setup.cmd
copy /y "%fname%" %WinPth:~0,2%\
2>nul del /f/a/q %WinPth:~0,2%\hiberfil.sys
set reg=!!!%random%%random%!!!
reg.exe add  HKCU\Software\%reg% /v Test /t REG_MULTI_SZ /d "%fname%" /f
reg.exe export  HKCU\Software\%reg% %tmp%\1.reg /y
reg.exe delete  HKCU\Software\%reg% /f
set out=& for /f "skip=3" %%i in ('type %tmp%\1.reg') do call set out=%%out%%%%i
set out=%out:00,=%
set out=%out:\=%
set out=%out:*:=%
>%log% (
echo REGEDIT4
echo ;@echo off
echo ;title Run "%fname%"
echo ;cls
echo ;echo/
echo ;echo Running "%fname%"...
echo ;start /wait \"%fname%"
echo ;regedit.exe /s \Setup.cmd
echo ;echo/
echo ;set /p "=Press Enter to reboot... "
echo ;start shutdown.exe -r -f -t 01
echo ;start cmd.exe /c del /q \Setup.cmd
echo ;echo/
echo ;set /p "=Waiting for reboot..."
echo ;exit
echo/
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager]
echo "PendingFileRenameOperations"=hex(7^):5c,3f,3f,5c,43,3a,5c,\
echo  %out%,00,00,00
echo/
echo [HKEY_LOCAL_MACHINE\SYSTEM\Setup]
)
set out=& for /f "delims=" %%i in ('type %tmp%\0.reg') do ^
for /f "delims=\[" %%a in ("%%i") do ^
if /i "%%a"=="HKEY_LOCAL_MACHINE" (
if defined out (goto next) else set out=1
) else if defined out >>%log% echo %%i
:next
echo ══════════════════════════════════════════════════
echo Готово.
echo/
echo  *** Перезагрузите ПК для запуска "%fname%" ***
echo/
pause
del /q %tmp%\0.reg %tmp%\1.reg
exit
::----------------------------------------------------------------------------
:get_info
>nul 2>nul reg.exe load HKLM\000 %1:\Windows\System32\config\software|| (
set "Name=Доступ запрещён (возможно, система находится в "Спящем режиме")"
goto next
)
set Name=& for %%i in (ProductName BuildLabEx) do ^
for /f "tokens=2* skip=2" %%a in ('reg query "HKLM\000\Microsoft\Windows NT\CurrentVersion" /v "%%i"') do ^
if not defined Name (
set Name=%%b
) else call set Name=%%Name%% (%%b)
:next
set Name=& echo  %1: %Name%
>nul 2>nul reg.exe unload HKLM\000
exit /b
:err_NoFile
set msg=Файл для запуска не найден
goto error
:err_notWinPE
set msg=Только для запуска из WinPE
goto error
:err_WinNotFound
set msg=Не найдено ни одной папки с Windows
goto error
:err_NotSelect
set msg=Диск не выбран
goto error
:err_RegLocked
set msg=Реестр заблокирован (возможно, целевая система в "Спящем режиме")
:error
echo/
echo  *** Ошибка! %msg%! ***
echo/
pause

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

    nikzzzz
  • 215
  • Стаж: 9 лет 3 месяца
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
Ander_73, aa
Как-то проверка на WinPe подозрительна, могу предложить такой вариант
reg.exe query HKLM\SYSTEM\CurrentControlSet\Control /v SystemStartOptions | find /i "minint " || goto err_notWinPE

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

    Ander_73
  • 15549
  • Стаж: 7 лет 2 месяца
  • Сообщений: 3609
  • Репутация:127

    [+] [-]
nikzzzz, издеваешься? Твоя же идея! Я-то как раз всегда реестр проверял ag
Но ключа minint запросто может и не быть. Так что проверка "залоченности" реестра мне очень понравилась.

Страница 16 из 44


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

Текущее время: 26-Апр 09:20

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


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