命令行:枚举所有"运行"注册表项子项+数据

时间:2015-06-22 09:02:38

标签: for-loop cmd registry

我想创建一个枚举的cmd脚本 HKEY_USERS * \软件\微软\的Windows \ CurrentVersion \ Run中 用它的所有子键。

这是我到目前为止所做的但它没有工作..变量没有设置?

setlocal ENABLEEXTENSIONS
FOR /F "usebackq " %%A IN (`REG QUERY HKU`) DO (
    set "datareg=%%A\Software\Microsoft\Windows\CurrentVersion\Run"
    @echo %datareg%  >> "%userprofile%\desktop\runregistery.txt"
)

1 个答案:

答案 0 :(得分:1)

您可以在一行中执行您想要的操作而不使用set后跟echo

要导出HKEY_CURRENT_USER的密钥列表,您可以使用以下批处理文件。

TEST.CMD:

@echo off
for /f "usebackq skip=2" %%a in (`reg query HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run`)  do echo %%a>> "%userprofile%\desktop\runregistery.txt"

示例输出:

f.lux
PureText
EPSON
WinPatrol

如果您需要HKEY_CURRENT_USER的键和值,请使用reg export

reg export HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run > reg.out

示例输出:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"f.lux"="\"C:\\Users\\DavidPostill\\AppData\\Local\\FluxSoftware\\Flux\\flux.exe\" /noshow"
"PureText"="\"C:\\apps\\PureText\\PureText.exe\""
"EPSON Stylus Photo RX560 Series"="C:\\Windows\\system32\\spool\\DRIVERS\\x64\\3\\E_IATIBPE.EXE /FU \"C:\\Windows\\TEMP\\E_S8843.tmp\" /EF \"HKCU\""
"WinPatrol"="C:\\apps\\WinPatrol\\winpatrol.exe -expressboot"

要导出HKEY_USERS的列表键,您可以使用以下批处理文件。

TEST.CMD:

@echo off
Setlocal EnableDelayedExpansion
for /f "usebackq" %%a in (`reg query HKEY_USERS`)  do (
   set _user=%%a
   for /f "usebackq" %%b in (`reg query !_user!\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 2^> nul`) do (
     echo %%b>> "%userprofile%\desktop\runregistery.txt"
   )
)

示例输出:

HKEY_USERS\S-1-5-19\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
Sidebar
HKEY_USERS\S-1-5-20\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
Sidebar
HKEY_USERS\S-1-5-21-1699878757-1063190524-3119395976-1000\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
f.lux
PureText
EPSON
WinPatrol