2016-03-16 175 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