Вы должны войти, чтобы создавать сообщения и темы.

Архивирование драйверов системы из контекстного меню Этот компьютер [Решено]

Страница 1 из 2►

Прошу опытных товарищей помочь в создании твика в КМ Этот компьютер для архивирования драйверов системы в указанную папку с помощью утилиты pnputil.exe. в "сыром" виде это выглядит так:

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\BackupDriver]
@="»»» Архивирование Драйверов"
"Icon"=
"Position"="Bottom"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\BackupDriver\command]
@="cmd /c "pnputil.exe /export-driver * D:\BackupDriver\BackupDriver_pnputil"

Как правильно прописать утилиту в command?
Спасибо!


Комментарий модератора:
У нас принято здороваться, не забывайте об этом.

Привет!
Добавил создание папки и задержку консоли, так как если папки нет, Скопированоpnputil сам её не создаст и выдаст ошибку.
Если задержка консоли не нужна, уберите из конца команды Скопировано& pause
Перед применением твика, надо в реестре предоставить разрешения для ключа СкопированоHKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\BackupDriver]
@=">>> Архивирование Драйверов"
"Position"="Bottom"

[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\BackupDriver\command]
@="cmd /c \"md D:\\BackupDriver\\BackupDriver_pnputil & pnputil.exe /export-driver * D:\\BackupDriver\\BackupDriver_pnputil & pause\""
Лайкнул Gennady
Gennady

Здравствуйте, Вася! Большое спасибо!

Здравствуйте, форумчане.
Создал CMDшник для архивирования драйверов системы при помощи утилиты pnputil.exe в контекстном меню Этого Компьютера при нажатой Shift. Может кому пригодится. Очень удобно при переустановке Системы:

Спойлер
:: ================================================================================================
:: === Создание папки "D:\DriverBackup", создание в ней "desktop.ini" с указанием иконки папки ====
md D:\DriverBackup
SET Folder=D:\DriverBackup
IF EXIST "%Folder%\desktop.ini" ATTRIB -S -H "%Folder%\desktop.ini"

(
ECHO.
ECHO [.ShellClassInfo]
ECHO InfoTip=Архив Файлов Системы
ECHO IconFile=%systemroot%\System32\imageres.dll
ECHO IconIndex=226
ECHO IconResource=%systemroot%\System32\imageres.dll,226
)>>"%Folder%\desktop.ini"

ATTRIB +S +H "%Folder%\desktop.ini"
ATTRIB +R "%Folder%"
:: ------------------------- КМ Этот Компьютер -----------------------------
:: ------------ "Архивирование Драйверов с помощью системной утилиты "pnputil.exe" ------------
Reg Add "HKCR\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\BackupDriver" /ve /t REG_SZ /d "ЂаеЁўЁа®ў ­ЁҐ „а ©ўҐа®ў" /f
Reg Add "HKCR\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\BackupDriver" /v "Icon" /t REG_SZ /d "imageres.dll,226" /f
Reg Add "HKCR\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\BackupDriver" /v "Position" /t REG_SZ /d "Bottom" /f
Reg Add "HKCR\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\BackupDriver" /v "Extended" /t REG_SZ /d "" /f
Reg Add "HKCR\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\BackupDriver\command" /ve /t REG_SZ /d "cmd /c \"pnputil.exe /export-driver * D:\DriverBackup\"" /f
:: ================================================================================================


Внес его в SetupComplete.cmd. При установке на "живую" систему надо получить права на HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell

Комментарий модератора:
Убирайте код в спойлер

Лайкнул Sn1keRs
Sn1keRs

Здравствуйте! Прошу прощения, в предыдущем сообщении вместо ECHO InfoTip=Архив Файлов Системы должно быть ECHO InfoTip=Архив Драйверов Системы
Спасибо.

Здравствуйте, уважаемые форумчане. Здравствуйте, Вася.
Вася, Вы мне здорово помогли разобраться с командой в секции "command"
Хочу сделать вложенное контекстное меню с утилитами (pnputil, DISM, PowerSell) и, соответственно, команды:
(pnputil.exe /export-driver * D:\BackupDriver_pnputil; dism /online /export-driver /destination:D:\BackupDriverDISM; Export-WindowsDriver -Online -Destination D:\BackupDriverPowerShell). Все эти команды великолепно отрабатывают через "командное окно как администратор" и "PowerShell как администратор" и драйверы сохраняются  в указанные, заранее созданные, папки. Конечно на этом можно считать проблему исчерпанной, но есть желание реализовать идею посредством контекстного меню. Полученный опыт очень поможет в воплощении идей с контекстным меню.
Если Вас не затруднит, окажите мне помощь в записи 2-х последних команд в секции "command".
Спасибо.

Привет еще раз!
Для того, чтобы работали команды СкопированоDISM и СкопированоPowerShell, надо чтобы был полностью отключён контроль учётных записей (через твикер).
Если у Вас применён прошлый твик, то в реестре, по пути СкопированоHKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\BackupDriver
надо удалить (через ПКМ) параметр СкопированоПо умолчанию (напротив него должно писать Скопированозначение не присвоено), иначе вложенные пункты меню не будут отображаться.

Файл реестра:

Спойлер

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\BackupDriver]
"Extended"=""
"Icon"="imageres.dll,226"
"MUIVerb"=">>> Архивирование Драйверов"
"SubCommands"="PNPUTILBackup;DISMBackup;PowerShellBackup"
"Position"="Bottom"

; DISM
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\DISMBackup]
@="С помощью DISM"
"Icon"="imageres.dll,262"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\DISMBackup\command]
@="dism /online /export-driver /destination:D:\\BackupDriverDISM"

; PNPUTIL
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\PNPUTILBackup]
@="С помощью PNPUTIL"
"Icon"="imageres.dll,262"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\PNPUTILBackup\command]
@="pnputil.exe /export-driver * D:\\BackupDriver_pnputil"

; PowerShell
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\PowerShellBackup]
@="С помощью PowerShell"
"Icon"="imageres.dll,311"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\PowerShellBackup\command]
@="powershell /c Export-WindowsDriver -Online -Destination D:\\BackupDriverPowerShell"


Вот что получилось.

Лайкнул Gennady
Gennady

Вася, спасибо!

Цитата: Gennady от 04.11.2020, 00:56

При установке на "живую" систему надо получить права на HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell

Добрый день всем!
Чтобы не выставлять права на ветку реестра:
СкопированоHKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell
можно по типу, как у Хачатура в подобных твиках, использовать вместо этой другую ветку реестра на уровне пользователя:
СкопированоHKEY_CURRENT_USER\Software\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell

Лайкнул Gennady
Gennady

timser, приветствую Вас. Если я правильно понял, ветку HKEY_CURRENT_USER\Software\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell надо создать, т.к. в "живом" виде только HKEY_CURRENT_USER\Software\Classes\CLSID. Где можно глянуть подробности?

Gennady, при выполнении этого изменённого твика, данная ветка в реестре сама создаётся совместно со всеми там данными.

timser, да, спасибо. Я понял. Очень удобное "рац. предложение". Контекстные меню - это своеобразное хобби и постоянно приходится получать права на ту или иную ветвь (RegOwnershipEx 1.0.0.2 очень удобно, но суетно). Вашу подсказку внедрил, прошло как по маслу, беру на вооружение.

Здравствуйте, уважаемые форумчане.

Кратко о проблеме: можно ли через контекстное меню оперативно изменять значение какого-либо параметра в реестре (например, с 1 на 0 и наоборот).
Конкретно. В ветке

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
"Hidden"=dword:00000001                             ;Показывать скрытые файлы, папки и диски
"ShowSuperHidden"=dword:00000000       ;Скрывать системные защищенные файлы (рекомендуется) 0, Показать 1

менять значение параметра "ShowSuperHidden", при этом не затрагивая параметр "Hidden"? Вопрос перезагрузки проводника решен.

Спасибо за внимание.

В дополнение к сказанному выше.
Как правильно прописать в [\command] последовательный запуск *.cmd и за ним *.exe?
Спасибо.

Страница 1 из 2►