2016-03-16 1 views
2

Я пытаюсь изменить реестр с помощью командной строки. В основном, выполняя пакетный или .reg-файл. Я должен изменить «Shell» значение:Изменение реестра с помощью командной строки

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

Я пытался «regini.exe» команда, как вышеписанный на 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

Какова ваша цель? и считаете ли вы, что ваш abcd.exe работает как оболочка при замене этого значения из explorer.exe на abcd.exe? – 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 add. См. REG ADD /? – RGuggisberg

+0

Добавление/рег: 64 делает запись в реестре точным местоположением, что я хочу. Большое спасибо @RGuggisberg. – Gaurav