制作脚本以更改所有文件夹和子文件夹中的注册表值

Making a script to change regedit values in all folders and subfolders

我绝对不是一个有经验的编码员,所以请耐心回答这些问题。

我正在尝试将多个文件夹(包括其子文件夹)中的 LoadBehavior REG_DWORD 0x00000002(2) 更改为值 0x00000003(3)。我希望脚本 运行 通过每个文件夹和子文件夹,如果找到 REG_DWORD 类型,则将值更改为 3。 如果没有,我不希望它添加 REG_DWORD。

编辑: 在 JosefZ 的帮助下,我在下面编辑了我的代码:

对于你们这些编码员来说,这可能是一个简单的解决方法 :) 期待收到你们的来信

我的全部代码如下:

@echo off
echo Start af Registry p† remote pc
set /p input="Maskinens wrk-nummer:"
sc \%input% config remoteregistry start= auto
sc \%input% start remoteregistry

reg query \%input%\hku /v LoadBehavior /s | find /I "HKEY_USERS\"

for /F "tokens=*" %%G in ('
    reg query \%input%\hku /v LoadBehavior /s 2^>NUL ^| find /I "HKEY_USERS\"
  ') do (

         rem next command is merely displayed for debugging purposes
    echo REG ADD \%input%\%%G /v LoadBehavior /d "3" /t REG_DWORD /f
         rem remove `ECHO` from above command no sooner than debugged

)

Choice /M "Vil du gerne ogs† †bne Registry?"

If Errorlevel 2 Goto No

If Errorlevel 1 Goto Yes

Goto End

:No

Echo Programmet lukker

Goto End

:Yes

Echo Registry †bner

start regedit.exe


:End

timeout 2

结果运行上面的代码:

Start af Registry på remote pc
Maskinens wrk-nummer:wrk0022423
[SC] ChangeServiceConfig SUCCESS
[SC] StartService FAILED 1056:

Der kører allerede en udgave af tjenesten.

HKEY_USERS\S-1-5-21-3900305277-3673560937-2769375459-163256\SOFTWARE\Microsoft\Office\Excel\Addins\AdHocReportingExcelClientLib.AdHocReportingExcelClientAddIn.1
HKEY_USERS\S-1-5-21-3900305277-3673560937-2769375459-163256\SOFTWARE\Microsoft\Office\Excel\Addins\DYMO.LabelWriterAddIn
HKEY_USERS\S-1-5-21-3900305277-3673560937-2769375459-163256\SOFTWARE\Microsoft\Office\Excel\Addins\PowerPivotExcelClientAddIn.NativeEntry.1
HKEY_USERS\S-1-5-21-3900305277-3673560937-2769375459-163256\SOFTWARE\Microsoft\Office\Outlook\Addins\AccessAddin.DC
HKEY_USERS\S-1-5-21-3900305277-3673560937-2769375459-163256\SOFTWARE\Microsoft\Office\Outlook\Addins\Add-On-Products.ResourceFinder
HKEY_USERS\S-1-5-21-3900305277-3673560937-2769375459-163256\SOFTWARE\Microsoft\Office\Outlook\Addins\ColleagueImport.ColleagueImportAddin
HKEY_USERS\S-1-5-21-3900305277-3673560937-2769375459-163256\SOFTWARE\Microsoft\Office\Outlook\Addins\DYMO.LabelWriterAddIn
HKEY_USERS\S-1-5-21-3900305277-3673560937-2769375459-163256\SOFTWARE\Microsoft\Office\Outlook\Addins\TelemetryAddin.Connect
HKEY_USERS\S-1-5-21-3900305277-3673560937-2769375459-163256\SOFTWARE\Microsoft\Office\PowerPoint\Addins\OneNote.PowerPointAddinTakeNotesService
HKEY_USERS\S-1-5-21-3900305277-3673560937-2769375459-163256\SOFTWARE\Microsoft\Office\Word\Addins\DYMO.LabelWriterAddIn
HKEY_USERS\S-1-5-21-3900305277-3673560937-2769375459-163256\SOFTWARE\Microsoft\Office\Word\Addins\OneNote.WordAddinTakeNotesService
REG ADD \wrk0022423\HKEY_USERS\S-1-5-21-3900305277-3673560937-2769375459-163256\SOFTWARE\Microsoft\Office\Excel\Addins\AdHocReportingExcelClientLib.AdHocReportingExcelClientAddIn.1 /v LoadBehavior /d "3" /t REG_DWORD /f
REG ADD \wrk0022423\HKEY_USERS\S-1-5-21-3900305277-3673560937-2769375459-163256\SOFTWARE\Microsoft\Office\Excel\Addins\DYMO.LabelWriterAddIn /v LoadBehavior /d "3" /t REG_DWORD /f
REG ADD \wrk0022423\HKEY_USERS\S-1-5-21-3900305277-3673560937-2769375459-163256\SOFTWARE\Microsoft\Office\Excel\Addins\PowerPivotExcelClientAddIn.NativeEntry.1 /v LoadBehavior /d "3" /t REG_DWORD /f
REG ADD \wrk0022423\HKEY_USERS\S-1-5-21-3900305277-3673560937-2769375459-163256\SOFTWARE\Microsoft\Office\Outlook\Addins\AccessAddin.DC /v LoadBehavior /d "3" /t REG_DWORD /f
REG ADD \wrk0022423\HKEY_USERS\S-1-5-21-3900305277-3673560937-2769375459-163256\SOFTWARE\Microsoft\Office\Outlook\Addins\Add-On-Products.ResourceFinder /v LoadBehavior /d "3" /t REG_DWORD /f
REG ADD \wrk0022423\HKEY_USERS\S-1-5-21-3900305277-3673560937-2769375459-163256\SOFTWARE\Microsoft\Office\Outlook\Addins\ColleagueImport.ColleagueImportAddin /v LoadBehavior /d "3" /t REG_DWORD /f
REG ADD \wrk0022423\HKEY_USERS\S-1-5-21-3900305277-3673560937-2769375459-163256\SOFTWARE\Microsoft\Office\Outlook\Addins\DYMO.LabelWriterAddIn /v LoadBehavior /d "3" /t REG_DWORD /f
REG ADD \wrk0022423\HKEY_USERS\S-1-5-21-3900305277-3673560937-2769375459-163256\SOFTWARE\Microsoft\Office\Outlook\Addins\TelemetryAddin.Connect /v LoadBehavior /d "3" /t REG_DWORD /f
REG ADD \wrk0022423\HKEY_USERS\S-1-5-21-3900305277-3673560937-2769375459-163256\SOFTWARE\Microsoft\Office\PowerPoint\Addins\OneNote.PowerPointAddinTakeNotesService /v LoadBehavior /d "3" /t REG_DWORD /f
REG ADD \wrk0022423\HKEY_USERS\S-1-5-21-3900305277-3673560937-2769375459-163256\SOFTWARE\Microsoft\Office\Word\Addins\DYMO.LabelWriterAddIn /v LoadBehavior /d "3" /t REG_DWORD /f
REG ADD \wrk0022423\HKEY_USERS\S-1-5-21-3900305277-3673560937-2769375459-163256\SOFTWARE\Microsoft\Office\Word\Addins\OneNote.WordAddinTakeNotesService /v LoadBehavior /d "3" /t REG_DWORD /f
Vil du gerne også åbne Registry? [Y,N]?

显示值出现的所有子项(使用 temp 值名称而不是 LoadBehavior 仅用于演示):

==> reg query \%input%\hku /v temp /s | find /I "HKEY_USERS\"
HKEY_USERS\.DEFAULT\Environment
HKEY_USERS\S-1-5-21-3900305277-3673560937-2769375459-163256\Environment
HKEY_USERS\S-1-5-18\Environment

在您的代码中使用下一个 for /F loop 而不是 reg add …

for /F "tokens=*" %%G in ('
    reg query \%input%\hku /v LoadBehavior /s 2^>NUL ^| find /I "HKEY_USERS\"
  ') do (

         rem next command is merely displayed for debugging purposes
    echo REG ADD \%input%\%%G /v LoadBehavior /d "3" /t REG_DWORD /f
         rem remove `ECHO` from above command no sooner than debugged

)