
Итак, вот вам остренький сюрприз...
Я изменил разрешения на папку реестра (HKEY_CURRENT_USER\Control Panel\Keyboard) на "Запретить всем". У меня была веская причина сделать это (длинная история), но это не решило мою проблему (каким-то образом система все еще меняет их... уму непостижимо).
Как я могу это исправить/могу ли я это исправить? Я перепробовал все, что мог придумать, включая учетную запись администратора в безопасном режиме, но я не могу ни изменить разрешения, ни вернуть себе владельца. Я также попробовал команду takeown для файла NTUSER.DAT, который, как я думаю, содержит этот узел, но хотя команда и была успешной, я все еще не могу получить доступ к этой папке реестра или ключам внутри.
Есть идеи, не связанные с переустановкой Windows? У меня Windows 10.
решение1
При установке разрешений EVERYONE DENY вы получаете предупреждение о том, что только ВЛАДЕЛЕЦ ключа сможет изменять разрешения или получать к нему доступ. В моей системе Windows 10 владельцем является SYSTEM
. В большинстве случаев это будет либо SYSTEM
, TRUSTED INSTALLER
, либо ADMINISTRATORS
.
Поэтому мы можем исправить эту проблему, запустив regedit
как SYSTEM
. Для этого нам нужно скачатьpstoolsи извлеките инструменты в папку на вашем компьютере. В моей системе я извлек их в D:\Downloads
.
Теперь мы хотим запустить Regedit как SYSTEM. Для этого откройте административную командную строку и перейдите в каталог, в который вы развернули файл PSTOOLS ( CD D:\Downloads
). В этой папке находится psexec.
Мы запустим команду psexec -i -s regedit.exe
, и Regedit откроется.
Regedit теперь запущен как пользователь SYSTEM. Следовательно, HKEY_CURRENT_USER — это не ВАШ реестр, это реестр SYSTEM. Теперь нам нужно перейти к вашему разделу реестра. Мы найдем его в HKEY_USERS. Этот раздел содержит реестр всех смонтированных в данный момент (вошедших в систему) пользовательских реестров.
В HKEY_USERS вы найдете ряд ключей, которые начинаются с S-1-5-xxx и так далее. Более длинные ключи, которые заканчиваются на -1001, -1002 и т. д., — это ваши вошедшие в систему пользователи. Разверните каждый из них, чтобы найти тот, который соответствует вашему реестру пользователей. Вы можете открыть ключ Environment
под каждым из них, и вы, скорее всего, увидите элемент с именем пользователя, с которым связан ключ. С помощью этого метода вы можете найти правильный ключ S-1-5-xxx. По крайней мере, вы можете открыть каждый из них и проверить разрешения. Control Panel\Keyboard.
Вы определенно найдете, у которого из них плохие разрешения.
Теперь, когда вы знаете, как найти ключ Control Panel\Keyboard
, соответствующий вашей учетной записи пользователя, вы можете просто щелкнуть по нему правой кнопкой мыши и изменить разрешения. Удалите разрешение EVERYONE DENIED.
Кстати, система может продолжать вносить изменения в ключ, поскольку SYSTEM владеет ключом. Если вы пытаетесь помешать системе вносить изменения в этот ключ, то вам нужно изменить владельца ключа на свое имя пользователя. Затем запретите SYSTEM вносить изменения в ключ. Однако вы не можете запретить SYSTEM "Полный доступ", иначе система даже не сможет прочитать ключ, и неизвестно, что произойдет. Вместо этого вам нужно будет перейти в "Расширенные разрешения" и запретить разрешение "Установить значение".
решение2
Я думаю, вам нужны какие-то сторонние инструменты (и ОС) для редактирования реестра, когда Windows находится в автономном режиме. Попробуйте утилиту редактирования реестра, которая может редактировать реестр Windows, пока он выключен.
Вот один из них, который вы можете использовать:
https://pogostick.net/~pnh/ntpasswd/
Вы также можете попробовать отредактировать поврежденный реестр на другом компьютере под управлением Windows, выполнив команду «Загрузить куст» из меню «Файл» и снабдив его реестрами с компьютера, которые необходимо исправить. (Но лично я предпочитаю делать такие вещи из-под ОС, отличной от Windows)
Стандартные меры предосторожности:В любом случае будьте осторожны при работе с реестрами.