如何從 CLI 建立新的 .reg 文件

如何從 CLI 建立新的 .reg 文件

我想創建一個新.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
您將看到第一個引用類型為 content@的預設金鑰。 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

相關內容