2016-03-16 116 views
2

我正在尝试使用命令行更改注册表。基本上通过执行批处理或.reg文件。我必须要改变的“壳”价值:使用命令行更改注册表

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon 

我已经试过“REGINI.EXE”命令discribed上https://support.microsoft.com/en-us/kb/310516,但它不是为我工作。我也试过:

reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon /v Shell /t Reg_Sz /d abcd.exe 

但仍然没有成功。

+0

我有一个应用程序,应更改此注册表的启动时。由于这是一个32位应用程序,如果我在64位Windows设备上执行它,它将更改Wow6432Node项中的注册表。我正在考虑执行命令行来更改注册表,以便它会影响HKLM中的实际目标。 – Gaurav

+0

你这样做的目的是什么?并且您认为当您将explorer.exe中的这个值替换为abcd.exe时,您的abcd.exe可以作为shell使用? – Hackoo

+0

是的,abcd.exe是为了代替explorer.exe工作 – Gaurav

回答

2

不要忘记先备份您的注册表!

您可以使用:
REG ADD [ROOT\]RegKey /v ValueName [/t DataType] [/S Separator] [/d Data] [/f]

在批处理改变/添加注册表项。因此,这将是:

@echo off 
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Shell /t REG_SZ /d "abcd.exe" /f 
pause 

欲了解更多详情,请参阅: http://ss64.com/nt/reg.html

+0

谢谢,它正在做我在问题中提出的问题。执行这个批处理文件正是我想要的。但是当我通过我的应用程序执行批处理文件时,它再次更新“Wow6432Node”键中的注册表。 – Gaurav

+1

添加/ reg:64到您的reg添加命令。请参阅REG ADD /? – RGuggisberg

+0

添加/注册表:64是使注册表项在我想要的确切位置。非常感谢@Ruggisberg。 – Gaurav