我的註冊表權限有問題。在使用我的電腦期間,由於 SSD 控制器問題,它凍結了。重新啟動並將 SATA 替換為 SSD 後,PC 能夠識別 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
,但沒有幫助。我還可以嘗試從安裝 DVD 進行 Windows 修復,但這可能需要很長時間。也許這樣的事情有現有的方法嗎?
作為另一種選擇,我可以製作一些簡單的工具來分析一台正確電腦的權限,然後用我損壞的電腦重置相同的權限。
Windows 系統還原已停用,因此我無法使用它進行還原。
答案1
由於存取被拒絕問題,許多服務無法啟動。
我不會尋求權限回滾,而是嘗試給出不同的觀點來解決我引用的特定問題。
您可以嘗試為整個服務的登錄項目樹提供必要的使用者權限設定ACL應用程序,您可以在這裡下載(它是免費軟體):
https://helgeklein.com/download/
腳步
執行還原點,否則開啟命令提示字元(命令執行程式)並執行以下命令來備份服務金鑰樹:
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
重新啟動電腦並查看是否會導致預期的存取拒絕刪除。