Como posso criar um novo arquivo .reg a partir da CLI

Como posso criar um novo arquivo .reg a partir da CLI

Gostaria de criar um novo .regarquivo e adicioná-lo ao registro, conforme sugerido emEste artigo.

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

É muito simples. Mas eu quero fazer um roteiro. Achei que poderia usar apenas REG ADD, mas não tenho certeza de como incorporar a @="@SYS:DoesNotExist"parte no final.

Responder1

Crie seu arquivo em lote - por exemplo fix.bat- com o seguinte conteúdo:

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

Execute o lote e ele criará seu arquivo com o conteúdo desejado. Você pode mesclar manualmente o arquivo .reg ou dar um passo adiante e usar o arquivo em lote para mesclar o fix.regarquivo criado com o script no Registro do 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

Responder2

Se você importar essa chave uma vez e procurá-la com REG QUERY,
verá que a primeira @se refere à chave padrão do tipo REG_SZcom content @SYS:DoesNotExist.

Portanto, para criar a chave diretamente, REG ADDuse o seguinte lote que, como são necessários direitos de administrador, se eleva automaticamente (com a entrada do 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

informação relacionada