Prawa w rejestrze


Mniejsza o szczególy, ale w pewnej firmie stalo sie tak, ze administrator odebral uprawnienia w dosc istotnej galezi rejestru systemu Windows Vista. System postanowil zareagowac powaznie i logowanie okazalo sie niemozliwe. I tu pojawilo sie administratorowi pytanie: jak teraz ustawic prawa w rejestrze a konkretnie w galezi HKLM\SOFTWARE\Microsoft\costam? Odpowiedz "ponownie zainstalowac system" jest dobra, ale niekoniecznie najwlasciwsza... Last Known Good nie zadzialalo.

Skoro po wlaczeniu nie da sie zalogowac, to moze nadac prawa w rejestrze offline, czyli na wylaczonym systemie? Postanowilismy pójsc ta wlasnie droga.

Wszelkie kombinacje z recznymi zmianami wewnatrz pliku nalezy sobie jak najszybciej wyperswadowac. Nie tedy droga. Trzeba wziac inny system, taki na którym logowanie nie jest problemem i podac mu plik z odpowiednia galezia rejestru. Oczywiscie podac w taki sposób, zeby nie zastapic oryginalnego, bo ta metoda daleko nie zajdziemy. Teoretycznie moznaby zrobic to metoda przekladania dysków i kopiowania plików, ale w przypadku Windows Vista, mamy do dyspozycji znacznie lepsze rozwiazanie: plyte instalacyjna. Plyta instalacyjna Windows Vista jest przeciez typowym LiveCD z którego uruchamia sie Windows PE. Mozna z tej plyty uruchomic komputer i popracowac rozmaitymi narzedziami.

Majac wiec komputer, w którym nalezy zmienic prawa w rejestrze, trzeba uruchomic go z instalacyjnej plyty DVD. Pierwszym ekranem jest pytanie o ustawienia regionalne, które nie maja tu wiekszego znaczenia. Na kolejnym ekranie, zamiast rzucajacego sie w oczy "Install", z niepozornego menu w dolnej czesci okna, nalezy wybrac "Repair your computer". Program poszuka systemów na dysku, ale nie ma to wiekszego znaczenia, poniewaz i tak trzeba uruchomic Command Prompt.

Majac Command Prompt, mozna sprawdzic, czy na dysku C: na pewno lezy plik odpowiedzialny za galaz rejestru. Powinien lezec w c:\windows\system32\config i nazywa sie SOFTWARE bez zadnego rozszerzenia. Windows PE ma swój rejestr i mozna w nim grzebac dowolnym narzedziem. Potrzebujemy jednak nie edycji rejestru Windows PE, tylko tego, który lezy nieuzywany na dysku. I tu zaczyna sie drobna sztuczka. Otóz do rejestru mozna podlaczac "w locie" cale galezie. Nalezy w takim razie podlaczyc plik SOFTWARE. Mozna to zrobic przy pomocy regedit (to narzedzie jest dostepne w Windows PE), ale wcale nie jest prosciej niz z wiersza polecen. W wierszu polecen robi sie to poleceniem reg LOAD HKLM\naprawa c:\windows\system32\config\software

Gdyby ktos teraz uruchomil edytor rejestru (mozna spróbowac, choc GUI jest dla mieczaków) to latwo bedzie zauwazyc nowa galaz o nazwie "naprawa". W niej znajduje sie to wszystko, czego potrzebujemy. Problemem jest tylko maly drobiazg: w systemie Windows PE, regedit nie zawsze umie nadawac prawa. Tak wiec jego zastosowanie tu ogranicza sie wylacznie do zaspokajania ewentualnej ciekawosci.

Pozostaje nadac prawa z wiersza polecen. O ile dla plików i folderów nie jest to specjalnie trudne, o tyle w przypadku rejestru, wbudowane w system narzedzia okaza sie mniej przydatne. Microsoft zadbal jednak o nas i udostepnil narzedzie subinacl.

Pobiera sie je niestety (zupelnie nie rozumiem dlaczego) w formacie MSI. Trzeba je zainstalowac na innym komputerze, po czym sam plik subinacl.exe przegrac na pendrive. Taki pendrive mozna podlaczyc do Windows PE i subinacl jest gotowy do uzycia.

Skladnia polecenia subinacl jest jedyna w swoim rodzaju, ale dla ustawienia uprawnien do galezi i podgalezi rejestru nalezy wpisac: subinacl /subkeyreg HKEY_LOCAL_MACHINE\naprawa\Microsoft\moja_zepsuta_galaz
/grant=everyone=F

Podejscie takie jest brutalne, bo nadaje wszystkim pelne prawa, co w praktyce moze okazac sie bardzo niebezpieczne. Niestety jednak Windows PE nie zna kont ani z domeny ani z systemu, który naprawiamy i trzeba posluzyc sie jednym z tak zwanych Well Known SIDs. Everyone nadaje sie tu bardzo dobrze poniewaz po takim ustawieniu i restarcie komputera logowanie powinno byc mozliwe. Wystarczy teraz zamknac okno wiersza polecen i z menu Windows PE wybrac "Restart".

Oczywiscie pierwsza czynnoscia po zalogowaniu powinno byc uruchomienie edytora rejestru i nadanie troszke mniej liberalnych uprawnien. Mozna posluzyc sie innym dzialajacym komputerem z Windows Vista jako wzorcem.

I dziala!

Autor: Grzegorz Tworek [MVP]

Comments (3)

  1. Anonymous says:

    @amandi: instalka visty jest LiveCD, czemu chcesz korzystać z innego? Pomysł zastosowania SetACL mi się podoba. Subinacl ma dla mnie osobiście tą zaletę, że go używam od lat i zawsze mam pod ręką. A SetACL – nie 😉

    @prs: Wszystko super… tylko co da skasowanie hasła jeżeli system nie chce startować… z hasłem czy bez?

  2. Anonymous says:

    A że tak skromnie zapytam, czy nie szybciej i łatwiej by było skorzystać z jakiegoś LiveCD? Cała masa tego w Necie się pałęta.

    I czy przypadkiem SetACL nie jest łudząco podobny do subinacl?

    http://setacl.sourceforge.net/

  3. prs says:

    Wystarczy poszukać trochę w necie, a nie podawać jakieś chore rozwiązania. 😛

    1. skasować hasło lokalnego administratora i dokonać potrzebnych zmian.

    2. administrator może się zdalnie podłączyć do rejestru lokalnego komputera i zmienić uprawnienia do wybranej gałęzi rejestru.

    3. google 1st 😛

Skip to main content