Как исправить разрешения «Запретить все» в реестре

534
Rathlord

Так что вот вам, ребята, острый ...

Я изменил разрешения для папки реестра (HKEY_CURRENT_USER \ Control Panel \ Keyboard) на «Запретить всех». У меня была веская причина для этого (длинная история), но это не решило мою проблему (каким-то образом система все еще меняет это ... ошеломляет).

Как я могу это исправить / я могу это исправить? Я перепробовал все, что мог, включая учетную запись администратора в безопасном режиме, но я не могу ни изменить разрешения, ни вернуть права собственности. Я также попытался выполнить команду takeown в файле NTUSER.DAT, который, как мне кажется, содержит этот узел, но пока команда добилась успеха, я все еще не могу получить доступ к этой папке реестра или ключам внутри.

Какие-нибудь идеи, которые не включают переустановку Windows? Я на Windows 10.

2
* «Я изменил разрешения для папки реестра (HKEY_CURRENT_USER \ Панель управления \ Клавиатура) на« Запретить всем ». * * Я уверен, что вы искренне * верили *, что у вас были для этого веские причины, но я ** никогда не ** услышал один. Run5k 5 лет назад 1
Попробуйте запустить regedit как системный или TrustedInstaller. Единственное, что я могу придумать, это может помочь. Кроме использования другого инструмента для изменения разрешений или монтирования куста NTUser.dat от имени другого пользователя. - https://blogs.technet.microsoft.com/askds/2008/10/22/getting-a-cmd-prompt-as-system-in-windows-vista-and-windows-server-2008/ mt025 5 лет назад 0
Кто сейчас является владельцем этого ключа? Вы администратор? Ben N 5 лет назад 0
Я предлагаю прибегнуть к резервному копированию реестра - иначе вы просто заперли за собой дверь, а ключи все еще внутри .... JohnnyVegas 5 лет назад 0
Как администратор вы всегда можете стать владельцем. Вы уверены, что используете regedit от имени администратора? Вы также можете попробовать запустить regedit как систему с помощью инструмента psexec `psexec / s regedit`. Вы также можете загрузить консоль восстановления Windows, смонтировать внешний реестр в regedit и внести изменения. Appleoddity 5 лет назад 0
@ Run5k Каждый раз, когда я запускаю miracast для своего третьего монитора, этот реестр необъяснимо изменяется и портит настройки ввода с клавиатуры. Это происходит несколько раз в день. Это вызывает ярость. Я понятия не имел, что еще попробовать. Rathlord 5 лет назад 1
@ mt025 Система также не имеет (или, по крайней мере, не должна) иметь доступ. Rathlord 5 лет назад 0
@BenN Технически он все еще должен принадлежать рекламодателю, но отрицаю, что все разрешения отменяют это. Rathlord 5 лет назад 0
@JohnnyVegas резервное копирование реестра было бы хорошей идеей, если бы я думал более четко. Rathlord 5 лет назад 0
@Appleoddity Я подозреваю, что вы не правы. Запретить все разрешения переопределить владение. Rathlord 5 лет назад 0
Владелец защищаемого объекта всегда имеет права на запись-ЦАП (за исключением одного действительно загадочного случая). Что произойдет, если вы попытаетесь использовать окно Разрешения редактора реестра, чтобы изменить разрешения или стать владельцем? Все просто затенено? Ben N 5 лет назад 1
Мы всегда рады помочь, и мы надеемся, что кто-то другой ответит окончательным ответом. При этом я верю, что это ценный опыт обучения: вы никогда не должны ** использовать ** Запретить всех в своем реестре. Run5k 5 лет назад 0
@BenN Это дает «Невозможно установить нового владельца на клавиатуре. Доступ запрещен». подскажите и не позволит сохранить его. То же самое верно при попытке изменить * любой * из настроек разрешений. Я не вижу текущие настройки, хотя это позволяет мне пытаться изменить их. Rathlord 5 лет назад 0
Похоже, что по умолчанию владельцем этого ключа является `SYSTEM`. Является ли ваша учетная запись администратором? Если нет, вы не сможете стать владельцем. Ben N 5 лет назад 0
Вы правы @Rathlord. Я только что проверил это. Когда вы устанавливаете DENY для всех разрешений, появляется очень заметное предупреждение о том, что ТОЛЬКО ВЛАДЕЛЕЦ ключа сможет изменять разрешения. Следовательно, КТО является владельцем? Владелец в моей системе - СИСТЕМА. Итак, просто скачайте psexec и запустите `psexec -i -s regedit.exe`, и вы сможете изменить разрешения. Appleoddity 5 лет назад 2
Инструменты @Appleoddity psexec исправили это, хороший звонок и спасибо за помощь. Если вы поставите его как фактический ответ, я проголосую за него / отметку ответили. Ура! Rathlord 5 лет назад 0

2 ответа на вопрос

4
Appleoddity

Когда вы устанавливаете КАЖДЫЙ ДЕНЬГИ, вы получаете предупреждение о том, что только ВЛАДЕЛЕЦ ключа сможет изменить разрешения или получить к нему доступ. На моей системе 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 - это не ВАШ реестр, а системный реестр. Теперь мы должны перейти к вашему разделу реестра. Мы найдем это под HKEY_USERS. Этот ключ содержит реестр всех текущих подключенных (вошедших в систему) реестров пользователей.

В HKEY_USERS вы найдете серию ключей, которые начинаются с S-1-5-xxx и так далее. Более длинные ключи, оканчивающиеся на -1001, -1002 и т. Д., Являются вашими вошедшими в систему пользователями. Разверните каждый из них, чтобы найти тот, который соответствует вашему реестру пользователей. Вы можете открыть Environmentключ под каждым из них, и вы, скорее всего, увидите элемент с именем пользователя, с которым связан ключ. С помощью этого метода вы можете найти правильный ключ S-1-5-xxx. По крайней мере, вы можете открыть каждый из них и проверить права доступа. Control Panel\Keyboard.Вы обязательно найдете, какой из них имеет плохие разрешения.

Теперь, когда вы знаете, как найти Control Panel\Keyboardключ, соответствующий вашей учетной записи, вы можете просто щелкнуть по нему правой кнопкой мыши и изменить разрешения. Удалите ВСЕ ОТКРЫТОЕ разрешение.

Следует отметить, что система может продолжать вносить изменения в ключ, поскольку SYSTEM владеет ключом. Если вы пытаетесь запретить системе вносить изменения в этот ключ, то вам нужно изменить владельца ключа на собственное имя пользователя. Затем запретите SYSTEM вносить изменения в ключ. Однако вы не можете отказать «Полный контроль» в SYSTEM, иначе система даже не сможет прочитать ключ и не сказать, что произойдет. Вместо этого вам нужно будет перейти к «Расширенные разрешения» и отказать в разрешении «Задать значение».

Спасибо за решение Apple, и я дам этому дополнительному решению попытку решить первоначальную проблему. Большое спасибо за вашу помощь! Rathlord 5 лет назад 0
Разве в реестре нет способа получить права владения ключами, как администраторы могут «завладеть» файлом? grawity 5 лет назад 0
@ Grawity Мне еще предстоит проверить это с NTFS, но я проверил это в реестре. После того, как вы указали всем отказано, вы получите предупреждение, что только владелец сможет получить доступ к ключу или изменить разрешения. Я могу подтвердить, вы не можете вступить во владение на этом этапе. Я подозреваю, что это случится и с NTFS. Я никогда не заставлял всех отрицать, так что это было для меня новостью. Appleoddity 5 лет назад 0
Нет - администраторы имеют SeTakeOwnershipPrivilege, который позволяет им стать владельцем _regardless_ разрешений объекта. (Вот как работает `takeown`.) Теоретически это должно быть выполнимо для любого объекта, а не только для файлов. grawity 5 лет назад 1
2
Alex

Я думаю, что вам нужны некоторые сторонние инструменты (и ОС) для редактирования реестра, когда Windows находится в автономном режиме. Попробуйте утилиту редактирования реестра, которая может редактировать реестр Windows, пока он выключен.

Вот тот, который вы можете использовать:

https://pogostick.net/~pnh/ntpasswd/

Вы также можете попытаться отредактировать испорченный реестр на другом компьютере под управлением Windows с помощью «Загрузить куст» из меню «Файл» и добавить в него реестры с компьютера, которые необходимо исправить. (Но лично я предпочитаю делать такие вещи из ОС не Windows)

Стандартные меры предосторожности: В любом случае будьте осторожны, когда возитесь с реестрами.

У меня установлена ​​Linux, может быть, я попробую. Rathlord 5 лет назад 0