Я хотел бы создать новый файл .reg и добавить его в реестр, как предлагается в этой статье.

REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping\Autorun.inf]
@="@SYS:DoesNotExist"

Это довольно просто. Но я хочу написать это. Я думал, что мог бы просто использовать REG ADD , но я не уверен, как включить в конце часть @="@SYS:DoesNotExist" .

2 ответа2

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
1

Если вы однажды импортировали этот ключ и искали его с помощью 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .