Od czasu do czasu muszę uruchamiać programy w imieniu systemu (SYSTEM lub system lokalny). Jest to zwykle konieczne do testowania lub debugowania pracy różnych programów i skryptów, które później zostaną uruchomione przez program planujący. Testowanie wydajności takich programów nie zawsze jest wygodne z poziomu konta (nawet administracyjnego).
Jak mogę uruchomić program lub interaktywny wiersz poleceń (cmd) z uprawnieniami administratora? W systemach Windows XP, 2000 i Windows Server 2003 można to zrobić bardzo prosto. Wystarczyło zalogować się do systemu z uprawnieniami administratora, otworzyć wiersz poleceń i wpisać w nim:
o 12:23 / interactive cmd.exe
, gdzie 12:23 - aktualny czas + jedna minuta (w formacie 24-godzinnym).
Po upływie określonego czasu zobaczysz czarne okno wiersza polecenia uruchomione z uprawnieniami lokalnego systemu. Warto zauważyć, że jeśli wykonasz tę sztuczkę poprzez połączenie terminala z systemem Windows Server 2003, okno wiersza polecenia uruchomi się w sesji konsoli (jak połączyć się z konsolą rdp).
W Windows 7 sytuacja nieco się zmieniła i pokazana powyżej sztuczka nie działa. Jest to dobre z punktu widzenia bezpieczeństwa, ale dla mnie jako administratora jest wyjątkowo niewygodne. Na szczęście udało mi się znaleźć alternatywny sposób uruchomienia interaktywnego wiersza polecenia z prawami systemowymi w systemie Windows 7. Sztuką jest użycie znanego już narzędzia SysInternals o nazwie PSexec.exe. Pobierz go na swój komputer.
Otwórz wiersz polecenia z uprawnieniami administratora („Uruchom jako administrator”.) Przejdź do katalogu, w którym znajduje się plik wykonywalny PSexec.exe i wpisz:
psexec -i -s cmd.exe
parametr -ja oznacza interaktywne uruchomienie, -s uruchamianie spod systemu
Po wykonaniu polecenia pojawi się nowe okno z wierszem poleceń uruchomionym z konta NT Authority \ System.
W ten sam sposób możesz uruchomić dowolny program lub skrypt z prawami systemowymi, po prostu zmień cmd.exe w nazwie swojego programu w parametrze narzędzia Psexec.
Możesz także przeczytać artykuł opisujący, jak utworzyć zadanie harmonogramu systemu Windows, które działa z prawami systemowymi..