Jak nadać lub odebrać uprawnienia do wyłączenia lub restartu serwera w GPO i LGP?

spece_IT_Windows1_150

Zapewnie wiecie, że uprawnienia do wyłączenia i restartu stacji roboczej mają wszyscy użytkownicy, a na serwerach tylko Administartorzy oraz członkowie grupy Backup Operators. Zdalne restarty zarówno komputera jak i serwera może wykonać tylko Administrator. Czy można nadać lub odebrać te uprawnienia? Oczywiście, że tak – zarówno w środowisku domenowym jak i bez.

Nadanie uprawnień do wyłączenia i restartu poprzez LGP

W środowisku bez domeny użyjemy Local Group Policy. Odpowiednią przystawkę uruchomimy wpisując w oknie CMD:

gpedit

Nawigujemy do:

Computer configuration\Windows Settings\Security Settings\Local Policies\User Rights Assignment

LGP allow shutdown

Edytujemy (PPM > „properties”) opcję „Shutdown the System” wedle naszych potrzeb na przykład dopisując konkretnego użytkownika:

LGP allow shutdown2

Za uprawnienia do zdalnego restartu odpowiada wpis „Force shutdown from a remote system” w tym samym kluczu.

Nadanie uprawnień do wyłączenia i restartu poprzez GPO

W środowisku domenowym uruchamiamy przystawkę GPMC (oto skąd ją wziąć jeśli jej nie mamy). Robimy to poleceniem:

gpmc

lub poprzez przystawkę MMC .

Ustawienia, które będziemy zmieniać dotyczą obiektu typu „komputer”, zatem polityka musi być podpięta do kontenera, w którym znajdują się konta komputerów/serwerów, które będą restartowane.

Przypomnę, że polityka GPO może spłynąć na:

  • wszystkie obiekty w domenie (edytujemy domyśloną politykę o nazwie „Default Domain Policy”),
  • wszystkie obiekty w konkretnym OU (tworzymy lub edytujemy politykę podlinkowaną do odpowiedniego kontenera),

Zaznaczamy odpowiednią politykę, lub tworzymy nową. Klikamy PPM, wybieramy „EDIT”, wreszcie nawigujemy do:

Computer configuration\Policies\Windows Settings\Security Settings\Local Policies\User Rights Assignment

Za uprawnienia do lokalnego restartu (po zalogowaniu) odpowiada wpis „Shutdown the System”, a za restart zdalny „Force shutdown from a remote system„.

Łukasz Skalikow

Obecnie Manager IT. Przez lata byłem Inżynierem systemów. Jestem entuzjastą i specem od vSphere, Windows serwer, GPO. Od zawsze byłem zwolennikiem wiersza poleceń i automatyzacji. Obecnie, ze względu na pracę, rodzinę i wyjazdy służbowe, dużo mniej udzielam się na blogu, ale mam nadzieję, że pośród kilkuset porad opublikowanych na spece.it, wiele osób znajdzie dla siebie coś przydatnego :)

Przeczytaj także...

14 komentarzy

  1. Tomek napisał(a):

    Nie działa 🙁
    W GPO utworzyłem nową regułę, po edycji ustawiłem Force shutdown from a remote system i dodałem tam użytkownika domeny Domena\Użytkownik. Podlinkowałem regułę pod kontener gdzie są stację robocze.
    Po wykonaniu polecenia shutdown.exe – zwraca : Odmowa dostępu.
    Nawet gdy wykonuje shutdown -i.
    Użytkownik Domena\Użytkownik na stacji ( Win XP Pro ) ma uprawniania jako Użytkownicy.
    Jeśli dodam go do Administratorów stacji – shutdown działa.
    No ale to ma wykonywać użytkownik anie administrator stacji roboczej.

    • Łukasz Skalikow napisał(a):

      Czy mówimy o restarcie lokalnym (shutdown -r) czy zdalnym (shutdown -r -m \\nazwa maszyny)?

    • Tomek napisał(a):

      O restarcie zdalnym. Chce aby użytkownik mógł zrestartować serwer.
      Konkretnie takie polecania w pliku bat.:
      @echo off
      echo ——–
      echo Restart serwera terminali – wpisz nazwe serwera:
      set/p „serwer=>> ”
      pause
      c:\shutdown -r -f -m \\%serwer% -t 03

    • Łukasz Skalikow napisał(a):

      Czy ustawiłeś zarówno „Shutdown the System” jak i „Force shutdown from a remote system„ ?

      Pamietałeś o gpupdate /force po podpięciu GPO?

    • Tomek napisał(a):

      Tak, nie działało mi Force to też ustawiłem Shutdown the System.
      Nie robiłem gpupdate – ale kilka razy restartowałem stację testową.
      Ale za chwilę przetestuje z gpupdate.

    • Tomek napisał(a):

      Po gpupdate /force – też jest odmowa dostępu.
      Na serwerze jest Win 2000 Serwer SP4.
      Mnie to polecenie działa na każdym serwerze.
      To musi być jakiś problem z tym, że użytkownik nie ma uprawnień to tego polecenia.
      Patrzyłem na stacji na lokalne zasady i widzę że zostały z GPO przepisane.
      GPRESULT na stacji – zwraca że ta reguła z GPO jest zaimplementowana.

    • Łukasz Skalikow napisał(a):

      Czy GPO jest podpięte do OU w którym znajduje się konto restartowanej maszyny? Mówisz, że wykonałeś gpupdate, ale na windows 2000 nie działa gpupdate tylko „secedit /refreshpolicy machine_policy”. Czyżbyś robił to na komputerze użytkownika?

    • Tomek napisał(a):

      Nie. GPO jest podpięte pod OU gdzie jest stacja robocza z której ma być zdalny restart.
      Tak zrozumiałem z Twojego artykułu.
      A gpupdate i gpresult robiłem na stacji roboczej,

    • Łukasz Skalikow napisał(a):

      No to już wiesz, gdzie leżał błąd. Zmieniamy uprawnienia na komputerze/serwerze, który będzie restartowany. To jego dotyczy GPO, dlatego politka musi działać właśnie na niego.
      Dodam frazę „(komputerów) które będą restartowane”, aby było jasne. Pozdrawiam!

    • Tomek napisał(a):

      Nadal nie działa.
      Ustawiłem w GPO, regułę „pod” serwerem. Na serwerze ( win 2000 srv sp4 ) wykonałem secedit /refreshpolicy machine_policy – w event logu pokazało że polisa wykonała się z powodzeniem.

      Na stacji wykonałem batcha jak wyżej. jedyna zmiana to komunikat :
      „Operacja wykonana pomyślnie. Klient nie ma wymaganych uprawnień.”

      Pytanie, dlaczego użytkownik nie może nawet uruchomić shutdown.exe -i , czyli w wersji graficznej, bo jest komunikat Odmowa dostępu ? Wszak jeszcze niczego nie restartuje.

    • Tomek napisał(a):

      cd… czy użytkownik musi być członkiem grupy Backup Operators – tak jak piszesz na początku artykułu ?

    • Łukasz Skalikow napisał(a):

      Nie mam po dręka windows 2000, aby zreplikować ten problem.. Ale tak sobie gogluję i niektórzy mieli ten sam problem, i zamiast docelowego rozwiązania robili workaround typu dodanie użytkownika do „Power Users” albo zaszyfrowanie pliku bat z poleceniem runas.exe

      Ktoś pisał, że restart przez skrypt VB u niego działa.

      Resumując – Twój problem nie jest standardowym zachowaniem systemu i trudno mi zdalnie Ci pomóc nie dotykając tego serwera.

      Spróbuj szczęścia ze skryptem VB, albo głębiej zajrzyj w dziennik zdarzeń, aby znaleźć przyczynę.

      Możesz też sprawdzić, czy przypadkiem pshutdown nie zadziała:

      http://spece.it/windows-serwer-artykuly/psshutdown-exe-czyli-shutdown-exe-na-sterydach

      Daj znać jak poszło.

    • Tomek napisał(a):

      Nie poszło. Pshutdown zachowuje się tak samo jak shutdwon – czyli odmowa dostępu.
      Wygląda na to że użytkownik domeny z prawami użytkownika zaawansowanego też nie może użyć tego narzędzia.
      Nie wiem zupełnie dlaczego ?
      Co gorsza, zastosowana w GPO polisa na serwerze spowodowała, że brak jest możliwości restartu i zamknięcia serwera z konsoli lub przez zdalny pulpit ( Terminal Servises). Nie ma tych opcji – jest tylko LogOff. O czym przekonałem się w nocy próbując z domu restartować serwer :(.
      Generalnie nic z tego nie wyszło.
      A skrypt VB…, znalazłem – ale w kodzie odwołują się i tak to shutdown.exe, więc wątpię czy też zadziała.

    • Łukasz Skalikow napisał(a):

      Jaki system operacyjny działa na tym restartowanym serwerze?

Dodaj komentarz