¿Cómo puedo crear un nuevo archivo .reg desde la CLI?

¿Cómo puedo crear un nuevo archivo .reg desde la CLI?

Me gustaría crear un .regarchivo nuevo y agregarlo al registro, como se sugiere enEste artículo.

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

Es bastante simple. Pero quiero escribirlo. Pensé que podría usar REG ADD, pero no estoy seguro de cómo incorporar la @="@SYS:DoesNotExist"parte al final.

Respuesta1

Cree su archivo por lotes, por ejemplo fix.bat, con el siguiente contenido:

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

Ejecute el lote y creará su archivo con el contenido deseado. Puede fusionar manualmente el archivo .reg o puede ir un paso más allá y usar el archivo por lotes para fusionar el fix.regarchivo creado con el script en el Registro de 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

Respuesta2

Si una vez importa esa clave y la busca REG QUERY,
verá que la primera @se refiere a la clave predeterminada de tipo REG_SZcon contenido @SYS:DoesNotExist.

Entonces, para crear la clave directamente, REG ADDuse el siguiente lote que, como se requieren derechos de administrador, se eleva automáticamente (con UAC ingresando):

:: 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

información relacionada