Reset uprawnień w rejestrze i na dysku systemowym


 

spece_IT_Windows_Errors_3_210x210Dzisiaj podzielę się z Wami prostym rozwiązaniem problemu, którego powodem była uszkodzona struktura uprawnień w rejestrze na serwerze z Windows 2003. Problem objawiał się tym, że podczas tworzenia kopii bezpieczeństwa pojawiał się błąd mówiący o braku dostępu do niektórych kluczy rejestru. Niestety log nie wskazywał, który klucz stanowi problem, a niedawno serwer przeszedł całkiem sporo: m.in. instalację bazy SQL i szeregu aplikacji napisanych przez programistów w mojej firmie. Potrzebowałem rozwiązania, które zresetuje mi uprawnienia w całym rejestrze (czyli doda konto Administrator i System do wszystkich kluczy.

Moja pogarszająca się pamięć tym razem mnie nie zawiodła: błędy tego typu pojawiały się na małym odsetku komputerów podczas dystrybucji SP3, (komunikat brzmiał „Service Pack 3 setup error. Access is denied”) i potencjalne rozwiązanie miałem pod ręką :)

W systemach XP/Windows Serwer 2003 wykonujemy polecenie:

secedit /configure /cfg %windir%\repair\secsetup.inf /db secsetup.sdb /verbose

Jak wiemy, w nowszych systemach mnóstwo ścieżek i nazw zmieniono, więc dla Windows Vista i Windows Server 2008 poprawna forma tego polecenia to:

secedit /configure /cfg %windir%\inf\defltbase.inf /db defltbase.sdb /verbose

Podkreślam, że te komendy oprócz resetu uprawnień w Rejestrze również ustawią uprawnienia na dysku systemowym.
W Windows XP Home Edition oraz Windows Vista w Home Basic niestety żadne z tych poleceń nie zadziała. Przydać się może proste rozwiązanie oparte na Microsoft’owym narzędziu SubInACL.exe

Narzędzie to działa tylko w Wierszu Poleceń. Instalator zapyta o ścieżkę do katalogu w którym umieści jeden plik .exe i dokumentację w dwóch plikach .htm . Ja w swoim Windows 7 64 bit wybrałem domyślną:
C:\Program Files (x86)\Windows Resource Kits\Tools\
Po instalacji plik .exe można swobodnie przenieść sobie do dowolnego katalogu.
Proponuję zapisać komendy w Pliku Wsadowym .bat i zachować na przyszłość ;)

Aby „zresetować” uprawnienia w Rejestrze użyjemy następujących poleceń:

subinacl /subkeyreg HKEY_LOCAL_MACHINE /grant=administrators=f /grant=system=f
subinacl /subkeyreg HKEY_CURRENT_USER /grant=administrators=f /grant=system=f
subinacl /subkeyreg HKEY_CLASSES_ROOT /grant=administrators=f /grant=system=f

Przy okazji, aby zresetować uprawnienia na dysku systemowym należy wykonać następujące polecenie:

subinacl /subdirectories %SystemDrive%\ /grant=administrators=f /grant=system=f

Jeśli spotka Was problem z uprawnieniami do dysku systemowego lub Rejestru, to możecie wybrać jedno z dwóch rozwiązań opisanych powyżej. Mam nadzieję, że obie porady okażą się dla Was skuteczne.


Podobne Tematy:

  • anon

    Uratował mi Pan życie tym resetowaniem rejestru. Godzina 14:50, przedemna prawie 3 tygodniowy urlop. Pracownik dzwoni mowi, ze mu specjalistyczny program niedziała. Dodaje nieopatrznie zle uprawnienia do jednej z galezi rejestru. Po restarcie katastrofa, explorer.exe sypie błędami, połowa rzeczy nie dziala. Przygotowuje się do reinstalacji systemu (backup danych). Perspektywa kiepska bo na kompie kilka nietypowych program ow. Wchodze na internet i widze Panski wpis. Jestem uratowany. Zamiast 20:00, z perpektywą nastepnego dnia w pracy, o 16:00 jestem w domu i mam urlop.

    • Łukasz Skalikow

      Dzięki za miłe słowa. Udanego wypoczynku i zapraszam jak najczęściej na nasz Blog :)