2

Я пытаюсь удалить некоторые ключи реестра (элементы автозагрузки) через командную строку, и, хотя я могу удалить из HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run, я не могу ничего удалить из HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\ Запустить.

Я даже создал некоторые временные ключи там через regedit.exe, но даже они не могут быть восстановлены через командную строку. Поэтому я искал здесь похожие темы и, очевидно, гуглил. Обычно это происходит потому, что:

  1. Командная строка не запускается от имени администратора. Это не так, поскольку у меня определенно есть права администратора в запущенном окне cmd.
  2. Разрешения реестра блокируют удаление. Опять же, это не тот случай, здесь. Я вручную изменил разрешение через regedit.exe, и теперь я владелец HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run с полным контролем моей учетной записи.

Конкретное сообщение об ошибке, полученное из командной строки:

ERROR: The system was unable to find the specified registry key or value.

И все же ключ определенно существует в том месте, откуда я пытаюсь удалить его, и даже regedit показывает его там. Я также могу удалить его с помощью regedit без проблем.

У кого-нибудь есть какие-либо подсказки, что проверить?

Хорошо, поэтому, когда я писал этот пост, я наткнулся на что-то действительно странное. Казалось бы, есть две версии HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run.

Я понятия не имею, как это вообще возможно, но когда я копирую имя ключа в regedit, они оба идентичны, и все же они отображают разные элементы. Первый из них в порядке, и кажется, что reg.exe пытается найти и удалить ключ в этом месте, и поэтому он выдает ошибку. Второй - проблемный, где существует ключ, который мне нужно удалить через командную строку.

Однако, когда я добавляю идентичный ключ в HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run, он записывается в "правильное" расположение, и я также могу удалить его через командную строку.

Хорошо, я думаю, что знаю, в чем проблема сейчас. "Правильное" расположение отображается при запуске собственной 64-разрядной версии regedit, а проблемное отображается только при запуске 32-разрядной версии regedit.

РЕШЕНИЕ:

Используйте %windir%\SysWOW64\reg.exe для управления 32-разрядными записями реестра и %windir%\System32\reg.exe для управления 64-разрядными записями реестра. Я собираюсь провести строгий разговор с авторами программы о том, почему они вставляют свой ключ запуска в 32-битное требование в 64-битной системе.

1 ответ1

4

РЕШЕНИЕ. Используйте %windir%\SysWOW64\reg.exe для управления 32-разрядными записями реестра и %windir%\System32\reg.exe для управления 64-разрядными записями реестра.

Я собираюсь провести строгий разговор с авторами программы о том, почему они вставляют свой ключ запуска в 32-битное требование в 64-битной системе.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .