Jak sprawdzić, czy bieżący skrypt wsadowy ma uprawnienia administratora?
Wiem, jak wywoływać się za pomocą run, ale nie wiem, jak sprawdzić uprawnienia administratora. Jedyne rozwiązania, które widziałem, to prymitywne hakowanie lub używanie programów zewnętrznych. Właściwie nie dbam o to, czy jest to hackowanie, o ile działa w systemie Windows XP i nowszych.
windows
batch-file
cmd
admin
flacs
źródło
źródło
Odpowiedzi:
Zagadnienia
Rozwiązanie blak3r / Rushyo działa dobrze we wszystkim oprócz Windows 8. Uruchomienie
AT
systemu Windows 8 powoduje:(patrz zrzut ekranu nr 1) i wróci
%errorLevel%
1
.Badania
Poszedłem więc szukać innych poleceń wymagających podwyższonych uprawnień. rationallyparanoid.com miał listę kilku, więc uruchomiłem każdą komendę na dwóch przeciwległych krańcach obecnych systemów operacyjnych Windows (XP i 8) w nadziei na znalezienie polecenia, które odmówiłoby dostępu do obu systemów operacyjnych, gdy uruchomiono je ze standardowymi uprawnieniami.
W końcu znalazłem jeden
NET SESSION
. Prawdziwe , czyste, uniwersalne rozwiązanie, które nie pociąga za sobą:FOR
pętliAT
(niezgodny z Windows 8) lubWHOAMI
(niezgodny z Windows XP).Każdy z nich ma własne problemy z bezpieczeństwem, użytecznością i przenośnością.
Testowanie
Niezależnie potwierdziłem, że działa to na:
(patrz zrzut ekranu # 2)
Wdrożenie / wykorzystanie
Aby skorzystać z tego rozwiązania, po prostu zrób coś takiego:
Dostępne tutaj, jeśli jesteś leniwy: https://dl.dropbox.com/u/27573003/Distribution/Binaries/check_Permissions.bat
Wyjaśnienie
NET SESSION
to standardowe polecenie używane do „zarządzania połączeniami serwera z komputerem. Użyte bez parametrów [it] wyświetla informacje o wszystkich sesjach z komputerem lokalnym”.Oto podstawowy proces mojej podanej implementacji:
@echo off
goto check_Permissions
:check_Permissions
bloku kodunet session >nul 2>&1
STDOUT
strumienia wyjściowego (uchwyt numeryczny 1 / ) donul
STDERR
) do tego samego miejsca docelowego, co uchwyt numeryczny 1if %errorLevel% == 0
%errorLevel%
) jest równa,0
oznacza to, że nie wystąpiły żadne błędy, a zatem natychmiastowe poprzednie polecenie zostało pomyślnie uruchomioneelse
%errorLevel%
) nie jest równa,0
oznacza to, że wystąpiły błędy, a zatem natychmiastowe poprzednie polecenie nie powiodło sięZrzuty ekranu
Windows 8
AT
%errorLevel%
:NET SESSION
w systemie Windows XP x86 - Windows 8 x64 :Dziękuję, @Tilka, za zmianę zaakceptowanej odpowiedzi na moją. :)
źródło
net session
pomyślnie (ERRORLEVEL = 0) - ale tak naprawdę nie ma uprawnień administratora. Używanieopenfiles
(patrz odpowiedź Lucretiusa poniżej) nie ma tego problemu.Rozwiązanie Andersa działało dla mnie, ale nie byłem pewien, jak je odwrócić, aby uzyskać odwrotną sytuację (gdy nie byłeś administratorem).
Oto moje rozwiązanie. Ma dwa przypadki, IF i ELSE, oraz trochę sztuki ascii, aby ludzie naprawdę ją czytali. :)
Minimalna wersja
Rushyo opublikował to rozwiązanie tutaj: Jak wykryć, czy CMD działa jako Administrator / ma podwyższone uprawnienia?
Wersja, która dodaje komunikaty o błędach, wstrzymuje i wychodzi
Działa na WinXP -> Win8 (w tym wersje 32/64 bitowe).
EDYCJA: 28.08.2012 Zaktualizowano do obsługi systemu Windows 8. @ BenHooper zwrócił na to uwagę w swojej odpowiedzi poniżej. Proszę głosować za jego odpowiedzią.
źródło
AT
nie działa w systemie Windows 8, ale znalazłem lepsze rozwiązanie. Wysłałem to tutaj jako odpowiedź: stackoverflow.com/questions/4051883/… (lub możesz po prostu przewinąć w dół, cokolwiek).Więcej problemów
Jak wskazał @Lectrode, jeśli spróbujesz uruchomić
net session
polecenie, gdy usługa serwera jest zatrzymana, pojawi się następujący komunikat o błędzie:W takim przypadku
%errorLevel%
zmienna zostanie ustawiona na2
.Uwaga Usługa serwera nie jest uruchamiana w trybie awaryjnym (z siecią lub bez).
Poszukuję alternatywy
Coś takiego:
Uruchomiłem więc waniliową maszynę wirtualną z systemem Windows XP i zacząłem przewijać listę aplikacji w
C:\Windows\System32
folderze, próbując znaleźć jakieś pomysły. Po prób i błędów, to jest brudny (pun przeznaczone) zbliżyć mam wymyślić:fsutil dirty
Polecenia wymaga praw administratora do uruchomienia, a nie inaczej.%systemdrive%
to zmienna środowiskowa, która zwraca literę dysku, na którym jest zainstalowany system operacyjny. Dane wyjściowe są przekierowywanenul
, a zatem ignorowane.%errorlevel%
Zmienna zostanie ustawiony0
tylko po pomyślnym wykonaniu.Oto, co mówi dokumentacja:
Dalsze badania
Chociaż powyższe rozwiązanie działa od systemu Windows XP, warto dodać, że Windows 2000 i Windows PE (środowisko preinstalowane) nie są dostarczane
fsutil.exe
, więc musimy skorzystać z czegoś innego.Podczas poprzednich testów zauważyłem, że uruchomienie
sfc
polecenia bez żadnych parametrów spowoduje albo:To znaczy: bez parametrów, bez imprezy . Chodzi o to, że możemy przeanalizować dane wyjściowe i sprawdzić, czy dostaliśmy tylko błąd:
Wyjście błędu jest najpierw przekierowywane na standardowe wyjście, które następnie jest przesyłane potokowo do
find
polecenia. W tym momencie musimy szukać jedynego parametru, który jest obsługiwany we wszystkich wersji systemu Windows do systemu Windows 2000:/SCANNOW
. Wyszukiwanie nie rozróżnia wielkości liter, a dane wyjściowe są odrzucane przez przekierowanie donul
.Oto fragment dokumentacji:
Przykładowe użycie
Oto kilka przykładów wklejania i uruchamiania:
Windows XP i nowszy
Windows 2000 / Windows PE
Dotyczy
---
źródło
SFC
czeku dla wszystkich systemów, musi być trochę kreatywny. Z jakiegoś powodu, zaczynając od Windows 8,SFC
wypisuje tylko pojedyncze znaki. Aby pomyślnie przeanalizować dane wyjściowe, musisz wykonać następujące czynności:setlocal enabledelayedexpansion
for /f "tokens=* delims=" %%s in ('sfc 2^>^&1^|MORE') do @set "output=!output!%%s"
echo "%output%"|findstr /I /C:"/scannow">nul 2>&1
(3 osobne linie). Powinno to działać w systemie Windows 2000 przez Windows 2012 R2. Na marginesie, wolę FINDSTR, ponieważ ogólnie przetwarza rzeczy szybciej niż FIND.fsutil
jeszcze osobiście twojego rozwiązania, ale z tego, co widzę, wydaje się ono o wiele bardziej elastyczne niż moje rozwiązanie. Chociaż może nie tak elegancki. ;) Cieszę się, że między nami powstaje doskonałe, łatwe i elastyczne rozwiązanie do wykrywania administratora. :)fsutil dirty query >nul
gdy podniesiony, zwraca tekst pomocy i% errorlevel% = 0fsutil dirty query >nul
, jednakfsutil dirty query %systemdrive% >nul
nadal działajeszcze dwa sposoby - szybki i kompatybilny wstecz.
fltmc
polecenie jest dostępne w każdym systemie Windows od XP, więc powinno być dość przenośne.Jeszcze jedna bardzo szybkie rozwiązanie testowane na
XP
,8.1
,7
- istnieje jedna zmienna specyficzny=::
, który jest przedstawiony tylko jeśli sesja konsoli nie ma privileges.As administratora nie jest tak łatwo stworzyć zmienną, która zawiera=
się w jego nazwa jest stosunkowo niezawodny sposób sprawdzić dla administratora uprawnienie (nie wywołuje zewnętrznych plików wykonywalnych, więc działa dobrze)Jeśli chcesz użyć tego bezpośrednio z wiersza poleceń, ale nie z pliku wsadowego, możesz użyć:
źródło
=::
zmiennej jest raczej błędem - reprezentuje nieistniejący dysk, więc prawdopodobnie zostało naprawione w win10.=::
jest zdefiniowany dla CMD niebędącego administratorem w Windows 10 1709. W każdym razie nie jest to niezawodny sposób, możesz łatwo zmusić go do zdefiniowania nawet w sesjach CMD administratora:subst :: c:\ & for %a in (::) do %a & set,
źródło
alternatywne rozwiązanie:
źródło
openfiles
i sprawdzić ERRORLEVEL.openfiles.exe
że nie działa w WinPE, więc skrypt zawsze zwróci, że użytkownik nie jest administratorem.1>
i2>&1
są wyjaśnione na microsoft.com/resources/documentation/windows/xp/all/proddocs/… .nul
odnosi się do zerowego urządzeniaNie tylko sprawdza, ale automatycznie
otrzymuje uprawnienia administratora, czyli Automatyczny UAC dla Win 7/8 / 8.1 ff. : Oto naprawdę fajna funkcja z jeszcze jedną funkcją: Ten fragment partii nie tylko sprawdza prawa administratora, ale pobiera je automatycznie! (i testuje wcześniej, jeśli żyjesz w systemie operacyjnym obsługującym UAC).
Dzięki tej sztuczce nie trzeba dłużej klikać prawym przyciskiem myszy pliku wsadowego „z uprawnieniami administratora”. Jeśli zapomniałeś, aby rozpocząć z podwyższonymi prawami, UAC pojawia się automatycznie! Co więcej, na początku jest testowany, czy system operacyjny potrzebuje / zapewnia UAC, więc zachowuje się poprawnie np. Dla Win 2000 / XP, dopóki nie przetestuje Win 8.1.
Fragment łączy kilka dobrych wzorców wsadowych, szczególnie (1) test administratora w tym wątku autorstwa Ben Hooper i (2) aktywacja UAC odczytana na BatchGotAdmin i cytowana na stronie wsadowej przez robvanderwoude (szacunek). (3) W przypadku identyfikacji systemu operacyjnego według „wzorca VER | FINDSTR” po prostu nie znalazłem odniesienia.)
(Jeśli chodzi o niektóre bardzo drobne ograniczenia, gdy „SESJA NETTO” nie działa, jak wspomniano w innej odpowiedzi, możesz wstawić kolejne z tych poleceń. Dla mnie uruchomiona w trybie awaryjnym Windows lub wyłączone specjalne usługi standardowe i takie nie są ważnymi przypadkami użycia - może dla niektórych administratorów.)
źródło
start
- otwiera skrypt w nowym oknie. Jeśli chcesz zobaczyć wyniki - dodajpause
na końcu skryptu. Ponadto trudno jest wykryć, kiedy „utrzymujemy” poziom i kiedy następuje powtórka. Możesz do tego użyć argumentu wiersza poleceń: github.com/tgandor/meats/blob/master/lang_lawyer/cmd/…Mam dwa sposoby sprawdzania uprzywilejowanego dostępu, oba są dość niezawodne i bardzo przenośne w prawie każdej wersji systemu Windows.
1. Metoda
* Działa na XP i nowszych
2. Metoda
* Działa na XP i nowszych
Przykład roboczy
Skrypt usuwający folder tymczasowy
Pokaż fragment kodu
źródło
W skrypcie wsadowym Elevate.cmd (patrz ten link ), który napisałem w celu uzyskania uprawnień administratora , zrobiłem to w następujący sposób:
Jest to testowane na Windows 7, 8, 8.1, 10, a nawet Windows XP i nie wymaga żadnych zasobów, takich jak specjalny katalog, plik lub klucz rejestru.
źródło
Najczystszym sposobem sprawdzenia uprawnień administratora za pomocą skryptu CMD, który znalazłem, jest mniej więcej taki:
Ta metoda używa tylko wbudowanych plików CMD.exe, więc powinna być bardzo szybka. Sprawdza również rzeczywiste możliwości procesu, zamiast sprawdzania identyfikatorów SID lub członkostwa w grupach, dlatego testowane jest skuteczne uprawnienie. I działa to już w Windows 2003 i XP. Normalne procesy użytkownika lub procesy nieokreślone zawodzą sondę katalogu, w przypadku której powiodły się procesy administracyjne lub podwyższone.
źródło
Poniżej próbuje utworzyć plik w katalogu Windows. Jeśli zasysa, usunie go.
Należy zauważyć, że 06CF2EB6-94E6-4a60-91D8-AB945AE8CF38 to identyfikator GUID, który został wygenerowany dzisiaj i zakłada się, że jest mało prawdopodobne, aby kolidował z istniejącą nazwą pliku.
źródło
was generated today and it is assumed to be improbable to conflict with an existing filename.
z wyjątkiem sytuacji, gdy dwie osoby używają tego koduWhoami / grupy nie działają w jednym przypadku. Jeśli masz całkowicie wyłączone UAC (nie tylko powiadomienie wyłączone) i zacząłeś od monitu administratora, a następnie wydałeś:
będziesz działał bez podniesienia uprawnień, ale wystawiając:
powie, że jesteś podwyższony. To jest źle. Oto dlaczego jest źle:
Podczas działania w tym stanie, jeśli IsUserAdmin ( https://msdn.microsoft.com/en-us/library/windows/desktop/aa376389(v=vs.85).aspx ) zwraca FALSE i UAC jest całkowicie wyłączone, a GetTokenInformation zwraca TokenElevationTypeDefault ( http://blogs.msdn.com/b/cjacks/archive/2006/10/10/24/modifying-the-mandatory-integrity-level-for-a-securable-object-in-windows-vista.aspx ), wówczas proces nie jest podniesiony, ale
whoami /groups
twierdzi, że tak.naprawdę najlepszym sposobem na zrobienie tego z pliku wsadowego jest:
Powinieneś zrobić
net session
dwa razy, ponieważ jeśli ktoś zrobił toat
wcześniej, otrzymasz błędne informacje.źródło
whoami /groups
nie podaje niewłaściwych informacji. Po prosturunas /trustlevel
stawia Cię w nieoczekiwanym miejscu: działa bez uprawnień administratora, ale z wysokim poziomem integralności. Możesz to potwierdzić za pomocą Process Explorer. (To może być błąd,runas
ale nie błądwhoami
.)runas /trustlevel
Kiedy jesteś lokalnym administratorem, a UAC jest wyłączony, wydanie polecenia runas z monitu administratora wprowadzi cię w kontekst bezpieczeństwa „podstawowego użytkownika”. W tym trybie nie można wykonywać operacji administracyjnych. Wypróbuj „sesję sieciową” lub fsutil ”lub dowolne inne narzędzie wymagające dostępu administratora. Jednak„ whoami / groups ”informuje cię, że jesteś podniesiony. Kiedy nie jesteś. Fakt, że wywołanie GetTokenInformation zwraca„ TokenElevationTypeDefault ”, wskazuje na to.źródło
whoami
nie jest obsługiwany w systemie Windows XP.Niektóre serwery wyłączają usługi, których wymaga polecenie „sesja sieciowa”. Powoduje to, że sprawdzenie administratora zawsze mówi, że nie masz uprawnień administratora, kiedy możesz.
źródło
Edycja: copyitright wskazał, że jest to niewiarygodne. Zatwierdzenie dostępu do odczytu za pomocą UAC pozwoli dirowi odnieść sukces. Mam trochę więcej skryptu, aby zaoferować inną możliwość, ale nie jest to tylko do odczytu.
Stara odpowiedź poniżej
Ostrzeżenie: zawodny
Na podstawie wielu innych dobrych odpowiedzi tutaj i punktów poruszonych przez and31415 stwierdziłem, że jestem fanem następujących rzeczy:
Kilka zależności i szybko.
źródło
Uwaga: Sprawdzanie za pomocą cacls \ system32 \ config \ system ZAWSZE kończy się niepowodzeniem w WOW64 (na przykład z% systemroot% \ syswow64 \ cmd.exe / 32 bit Total Commander), więc skrypty działające w powłoce 32-bitowej w systemie 64-bitowym będą się zapętlać na zawsze ... Lepiej byłoby sprawdzić prawa w katalogu pobierania wstępnego:
Przetestowano Win XP do 7, jednak nie działa w WinPE, ponieważ w Windows 7 install. Wim nie ma takiego katalogu ani cacls.exe
Również w winPE AND wow64 kończy się niepowodzeniem, sprawdź w openfiles.exe:
W systemie Windows 7 poziom błędu będzie oznaczony „1” z informacją, że „System docelowy musi być 32-bitowym systemem operacyjnym”
Oba sprawdzenie prawdopodobnie również nie powiedzie się w konsoli odzyskiwania.
Co działa w systemie Windows XP - 8 32/64 bit, w WOW64 aw WinPE są: dir Próby stworzenia (IF Administrator nie dywan zbombardowany katalogu Windows z uprawnieniami dla każdego ...) i
i
czeki.
Jeszcze jedna uwaga w niektórych Windows XP (i prawdopodobnie także w innych wersjach, w zależności od majsterkowania administratora) w zależności od wpisów w rejestrze bezpośrednio wywołujących bat / cmd ze skryptu .vbs nie powiedzie się z informacją, że pliki bat / cmd nie są powiązane z niczym ...
Z drugiej strony wywołanie cmd.exe z parametrem pliku bat / cmd działa OK:
źródło
Dosłownie dziesiątki odpowiedzi w tym i połączonych pytaniach oraz w innych miejscach w SE, z których wszystkie są w ten czy inny sposób wadliwe, wyraźnie pokazały, że Windows nie zapewnia niezawodnego wbudowanego narzędzia konsoli. Czas więc wprowadzić własną wersję.
Poniższy kod C, oparty na Wykryj, czy program działa z pełnymi uprawnieniami administratora , działa w Win2k + 1 , w dowolnym miejscu i we wszystkich przypadkach (UAC, domeny, grupy przechodnie ...) - ponieważ robi to samo, co sam system, gdy sprawdza uprawnienia. Sygnalizuje wynik zarówno komunikatem (który można wyciszyć przełącznikiem), jak i kodem wyjścia.
Musi tylko być kompilowany raz, potem można po prostu skopiować
.exe
wszędzie - to zależy tylkokernel32.dll
iadvapi32.dll
(mam przesłał kopię ).chkadmin.c
:1 MSDN twierdzi, że interfejsy API to XP +, ale to nieprawda.
CheckTokenMembership
wynosi 2k +, a drugi jest jeszcze starszy . Ostatni link zawiera również znacznie bardziej skomplikowany sposób, który działałby nawet w NT.źródło
PowerShell ktoś?
źródło
Oto kolejna do dodania do listy ;-)
(spróbuj utworzyć plik w lokalizacji systemowej)
MODE CON
Reinicjalizuje ekran i surpresses żadnych błędów tekstowych / kiedy nie mając uprawnień do zapisu do lokalizacji systemu.źródło
Alternatywnie: użyj zewnętrznego narzędzia, które jest przeznaczone do tego celu, np. IsAdmin.exe (nieograniczone darmowe oprogramowanie).
Kody wyjścia:
0 - bieżący użytkownik nie będący członkiem grupy Administratorzy
1 - Bieżący członek Administratorów i działający z podwyższonym poziomem uprawnień
2 - Bieżący członek Administratorów, ale nie działający z podwyższonym poziomem uprawnień
źródło
źródło
Wyjaśnię kod wiersz po wierszu:
Bez tego użytkownicy będą zirytowani wieloma więcej niż 1 liniami.
Punkt, w którym rozpoczyna się program.
Ustaw nazwę pliku katalogu, który ma zostać utworzony.
Tworzy katalog na
<DL>:\Windows
(zamień <DL> na literę dysku).Jeśli zmienna środowiskowa ERRORLEVEL ma wartość zero, oznacza to komunikat o powodzeniu echa.
Idź do końca (nie idź dalej).
Jeśli ERRORLEVEL ma wartość jeden, wyświetl komunikat o błędzie echa i przejdź do końca.
Jeśli nazwa pliku już istnieje, utwórz ponownie folder (w przeciwnym razie
goto end
polecenie nie pozwoli temu uruchomić).Określ punkt końcowy
Usuń utworzony katalog.
Zatrzymaj się, aby użytkownik mógł zobaczyć wiadomość.
Uwaga :
>nul
i2>nul
filtrują dane wyjściowe tych poleceń.źródło
net user %username% >nul 2>&1 && echo admin || echo not admin
źródło
admin
Myślę, że najprostszym sposobem jest zmiana daty systemowej (która wymaga uprawnień administratora):
Jeśli
%date%
zmienna może obejmować dzień tygodnia, wystarczy pobrać datę z ostatniej częściDATE
polecenia:źródło
:(
Znalazłem użytkownika, który może korzystać,
net session
mimo że nie jest administratorem. Nie zastanawiałem się dlaczego. Moim obejściem jest sprawdzenie, czy użytkownik może utworzyć folder w folderze Windows.Oto mój kod:
źródło
Zbiór czterech pozornie najbardziej zgodnych metod z tej strony. Ten pierwszy jest naprawdę genialny. Testowane od XP w górę. Mylące jest jednak to, że nie ma standardowej komendy dostępnej do sprawdzenia uprawnień administratora. Myślę, że teraz skupiają się na PowerShell, który jest naprawdę bezużyteczny dla większości moich własnych prac.
Nazwałem partię „exit-if-not-admin.cmd”, którą można wywołać z innych partii, aby upewnić się, że nie będą kontynuować wykonywania, jeśli nie zostaną podane wymagane uprawnienia administratora.
źródło
Oto moje 2 grosze warte:
Potrzebowałem partii do uruchomienia w środowisku domeny podczas procesu logowania użytkownika, w środowisku „pracowni”, widząc, że użytkownicy przestrzegają zasad „blokowania” i ograniczonego widoku (dystrybuowanych głównie przez zestawy GPO).
Zestaw GPO domeny jest stosowany przed połączonym skryptem logowania użytkownika AD Tworzenie skryptu logowania GPO było zbyt dojrzałe, ponieważ „nowy” profil użytkowników nie został utworzony / załadowany / ani gotowy do zastosowania „usuń i / lub” Przypnij pasek zadań i elementy menu Start vbscript + dodaj niektóre pliki lokalne.
np .: proponowane środowisko profilu „domyślny użytkownik” wymaga skrótu „.URL” (.lnk) umieszczonego w „% ProgramData% \ Microsoft \ Windows \ Start Menu \ Programs * MyNewOWA.url *” i „C: Lokalizacje \ Users \ Public \ Desktop \ * MyNewOWA.url * ”, między innymi
Użytkownicy mają wiele komputerów w domenie, gdzie tylko te ustawione komputery „pracownicze” wymagają tych zasad.
Te foldery wymagają uprawnień administratora do zmiany i chociaż „użytkownik domeny” należy do lokalnej grupy „administrator”, kolejnym wyzwaniem było UAC.
Znalazłem różne adaptacje i połączyłem tutaj. Mam również niektórych użytkowników urządzeń BYOD, którzy wymagali innych plików z problemami z perm. Nie testowałem na XP (trochę za stary system operacyjny), ale kod jest obecny, bardzo chciałbym otrzymać informację zwrotną.
Komputery PC w domenie powinny być w jak największym stopniu zarządzane przez zestawy GPO. Ten skrypt może zarządzać maszynami grupy roboczej / samodzielnej.
Pamiętaj, że monit UAC wyskakuje co najmniej raz na komputerze grupy roboczej BYOD (gdy tylko wymagane jest pierwsze podniesienie do „uprawnień administratora”), ale ponieważ lokalne zasady bezpieczeństwa są modyfikowane do użytku administracyjnego od tego momentu, wyskakujące okienka znikną.
Komputer z domeną powinien mieć ustawioną zasadę GPO „ConsentPromptBehaviorAdmin” w ramach „już” utworzonej zasady „Blokowania” - jak wyjaśniono w sekcji „REFERENCJE” skryptu.
Ponownie uruchom import secedit.exe domyślnego pliku „.inf”, jeśli utkniesz w całej debacie „Do UAC lub Not to UAC” :-).
btw: @boileau Sprawdź swoją awarię na:
Uruchamiając tylko „% SYSTEMROOT% \ system32 \ cacls.exe” lub „% SYSTEMROOT% \ system32 \ config \ system” lub oba z wiersza polecenia - podwyższone lub nie, sprawdź wynik na całej tablicy.
źródło
Kolejny sposób to zrobić.
źródło