У меня проблема с разрешениями реестра. Во время использования ПК он завис из-за проблемы с контроллером SSD. После перезагрузки и замены SATA на SSD ПК смог распознать SSD и запустить Windows 8.1. Но похоже, что разрешения для служб в реестре сбиты. Многие службы не смогли запуститься из-за Access Denied
проблемы.
Process Monitor
говорит, что они пытались получить доступ к HKLM\System\CurrentControlSet\Control\
разделу. Мои типичные разрешения для узлов реестра в этом разделе:
Users > Read access
Administrators > Full Control access
SYSTEM > Full Control access
CREATOR OWNER > Full Control access
ALL APPLICATION PACKAGES > Full Control access
И разрешения, специфичные для сервиса, теряются. Я могу восстановить разрешения вручную, например, я добавил NT SERVICE\Dhcp
в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dhcp
, и тогда сервис смог нормально запуститься. Но трудно понять, каким ключам должен быть разрешен доступ для каких сервисов. Я могу использовать , Process Monitor
чтобы получить эти данные, но это может быть слишком долго. Другой способ - я могу дать пользователю Everyone
, но это небезопасный способ.Full control
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\
Итак, есть ли какой-либо существующий способ восстановить разрешения по умолчанию для ключей реестра служб? Я пытался восстановить его с помощью secedit
, но это не помогло. Я также могу попробовать выполнить восстановление Windows с установочного DVD, но это может занять много времени. Может быть, есть существующий способ для таких вещей?
В качестве другого варианта я могу создать простой инструмент, который будет анализировать разрешения одного правильного компьютера, а затем сбрасывать их на моем поврежденном компьютере.
Функция восстановления системы Windows отключена, поэтому я не могу выполнить восстановление с ее помощью.
решение1
Многие службы не смогли запуститься из-за проблемы «Отказано в доступе».
Вместо того чтобы искать способ отката разрешений, я попытаюсь дать другую точку зрения на решение той конкретной проблемы, которую я процитировал.
Вы можете попробовать предоставить необходимые разрешения пользователю для всего дерева ключей реестра службы с помощьюУстановитьACLприложение, которое вы можете скачать здесь (оно бесплатное):
https://helgeklein.com/download/
Шаги
Выполните восстановление точки, в противном случае откройте командную строку (CMD.exe) и выполните следующие заказы, чтобы создать резервную копию дерева ключей сервиса:
Reg.exe Export "HKLM\SYSTEM\CurrentControlSet\Services" "%Userprofile%\Desktop\CurrentControlSet.reg"
И:
Reg.exe Export "HKLM\SYSTEM\ControlSet001\Services" "%Userprofile%\Desktop\ControlSet001.reg"
(он будет сохранен как скрипт реестра на рабочем столе текущего пользователя)
Выполните эти команды, чтобы стать владельцем и получить полный доступ текущего пользователя к деревьям ключей реестра:
"SetACL.exe" -on "HKLM\SYSTEM\CurrentControlSet\Services" -ot "reg" -ownr "n:%UserName%" -rec "Yes" -actn "setowner" -silent "SetACL.exe" -on "HKLM\SYSTEM\CurrentControlSet\Services" -ot "reg" -ace "n:%UserName%;p:full" -rec "Yes" -actn "ace" -silent
И:
"SetACL.exe" -on "HKLM\SYSTEM\ControlSet001\Services" -ot "reg" -ownr "n:%UserName%" -rec "Yes" -actn "setowner" -silent "SetACL.exe" -on "HKLM\SYSTEM\ControlSet001\Services" -ot "reg" -ace "n:%UserName%;p:full" -rec "Yes" -actn "ace" -silent
Перезагрузите ПК и проверьте, привело ли это к ожидаемому снятию отказа в доступе.