
Я хотел бы создать новый .reg
файл и добавить его в реестр, как предлагается вЭта статья.
REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping\Autorun.inf]
@="@SYS:DoesNotExist"
Это довольно просто. Но я хочу написать скрипт. Я думал, что могу просто использовать REG ADD
, но не уверен, как включить @="@SYS:DoesNotExist"
часть в конце.
решение1
Создайте свой пакетный файл, например fix.bat
, со следующим содержимым:
echo REGEDIT4 > fix.reg
echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping\Autorun.inf] >> fix.reg
echo @="@SYS:DoesNotExist" >> fix.reg
Запустите пакет, и он создаст ваш файл с нужным содержимым. Вы можете вручную объединить файл .reg или пойти еще дальше и использовать пакетный файл для объединения файла, fix.reg
созданного с помощью скрипта, в реестр Windows:
echo REGEDIT4 > fix.reg
echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping\Autorun.inf] >> fix.reg
echo @="@SYS:DoesNotExist" >> fix.reg
regedit.exe /S fix.reg
решение2
Если вы однажды импортируете этот ключ и посмотрите его с помощью REG QUERY
,
вы увидите, что первый @
ссылается на ключ по умолчанию типа REG_SZ
с содержимым @SYS:DoesNotExist
.
Таким образом, чтобы создать ключ напрямую, REG ADD
используйте следующий пакет, который, поскольку требуются права администратора, автоматически повышает себя (с включением UAC):
:: Q:\Test\2018\11\29\SU_1379397.cmd
@echo off & setlocal EnableExtensions DisableDelayedExpansion
:: if not already running as admin, elevate and run batch again
net file 1>nul 2>&1 || (
powershell -ExecutionPolicy unrestricted -Command ^
"Start-Process -Verb RunAs -FilePath '%comspec%' -ArgumentList '/c %~f0 %*'"
goto :eof
)
:: Put code here that needs elevation
@Echo off
Set "Key=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping\Autorun.inf"
Set "Dat=@SYS:DoesNotExist"
REG ADD "%Key%" /ve /t REG_SZ /d "%Dat%" /f
TIMEOUT /T 10