Mniejsza o szczegóły, ale w pewnej firmie stało się tak, że administrator odebrał uprawnienia w dość istotnej gałęzi rejestru systemu Windows Vista. System postanowił zareagować poważnie i logowanie okazało się niemożliwe. I tu pojawiło się administratorowi pytanie: jak teraz ustawić prawa w rejestrze a konkretnie w gałęzi HKLM\SOFTWARE\Microsoft\cośtam? Odpowiedź "ponownie zainstalować system" jest dobra, ale niekoniecznie najwłaściwsza... Last Known Good nie zadziałało.

Skoro po włączeniu nie da się zalogować, to może nadać prawa w rejestrze offline, czyli na wyłączonym systemie? Postanowiliśmy pójść tą właśnie drogą.

Wszelkie kombinacje z ręcznymi zmianami wewnątrz pliku należy sobie jak najszybciej wyperswadować. Nie tędy droga. Trzeba wziąć inny system, taki na którym logowanie nie jest problemem i podać mu plik z odpowiednią gałęzią rejestru. Oczywiście podać w taki sposób, żeby nie zastąpić oryginalnego, bo tą metodą daleko nie zajdziemy. Teoretycznie możnaby zrobić to metodą przekładania dysków i kopiowania plików, ale w przypadku Windows Vista, mamy do dyspozycji znacznie lepsze rozwiązanie: płytę instalacyjną. Płyta instalacyjna Windows Vista jest przecież typowym LiveCD z którego uruchamia się Windows PE. Można z tej płyty uruchomić komputer i popracować rozmaitymi narzędziami.

Mając więc komputer, w którym należy zmienić prawa w rejestrze, trzeba uruchomić go z instalacyjnej płyty DVD. Pierwszym ekranem jest pytanie o ustawienia regionalne, które nie mają tu większego znaczenia. Na kolejnym ekranie, zamiast rzucającego się w oczy "Install", z niepozornego menu w dolnej części okna, należy wybrać "Repair your computer". Program poszuka systemów na dysku, ale nie ma to większego znaczenia, ponieważ i tak trzeba uruchomić Command Prompt.

Mając Command Prompt, można sprawdzić, czy na dysku C: na pewno leży plik odpowiedzialny za gałąź rejestru. Powinien leżeć w c:\windows\system32\config i nazywa się SOFTWARE bez żadnego rozszerzenia. Windows PE ma swój rejestr i można w nim grzebać dowolnym narzędziem. Potrzebujemy jednak nie edycji rejestru Windows PE, tylko tego, który leży nieużywany na dysku. I tu zaczyna się drobna sztuczka. Otóż do rejestru można podłączać "w locie" całe gałęzie. Należy w takim razie podłączyć plik SOFTWARE. Można to zrobić przy pomocy regedit (to narzędzie jest dostępne w Windows PE), ale wcale nie jest prościej niż z wiersza poleceń. W wierszu poleceń robi się to poleceniem reg LOAD HKLM\naprawa c:\windows\system32\config\software

Gdyby ktoś teraz uruchomił edytor rejestru (można spróbować, choć GUI jest dla mięczaków) to łatwo będzie zauważyć nową gałąź o nazwie "naprawa". W niej znajduje się to wszystko, czego potrzebujemy. Problemem jest tylko mały drobiazg: w systemie Windows PE, regedit nie zawsze umie nadawać prawa. Tak więc jego zastosowanie tu ogranicza się wyłącznie do zaspokajania ewentualnej ciekawości.

Pozostaje nadać prawa z wiersza poleceń. O ile dla plików i folderów nie jest to specjalnie trudne, o tyle w przypadku rejestru, wbudowane w system narzędzia okażą się mniej przydatne. Microsoft zadbał jednak o nas i udostępnił narzędzie subinacl.

Pobiera się je niestety (zupełnie nie rozumiem dlaczego) w formacie MSI. Trzeba je zainstalować na innym komputerze, po czym sam plik subinacl.exe przegrać na pendrive. Taki pendrive można podłączyć do Windows PE i subinacl jest gotowy do użycia.

Składnia polecenia subinacl jest jedyna w swoim rodzaju, ale dla ustawienia uprawnień do gałęzi i podgałęzi rejestru należy wpisać: subinacl /subkeyreg HKEY_LOCAL_MACHINE\naprawa\Microsoft\moja_zepsuta_gałąź
/grant=everyone=F

Podejście takie jest brutalne, bo nadaje wszystkim pełne prawa, co w praktyce może okazać się bardzo niebezpieczne. Niestety jednak Windows PE nie zna kont ani z domeny ani z systemu, który naprawiamy i trzeba posłużyć się jednym z tak zwanych Well Known SIDs. Everyone nadaje się tu bardzo dobrze ponieważ po takim ustawieniu i restarcie komputera logowanie powinno być możliwe. Wystarczy teraz zamknąć okno wiersza poleceń i z menu Windows PE wybrać "Restart".

Oczywiście pierwszą czynnością po zalogowaniu powinno być uruchomienie edytora rejestru i nadanie troszkę mniej liberalnych uprawnień. Można posłużyć się innym działającym komputerem z Windows Vista jako wzorcem.

I działa!

Autor: Grzegorz Tworek [MVP]