Jak nadać lub odebrać uprawnienia do wyłączenia lub restartu serwera w GPO i LGP?
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
Edytujemy (PPM > „properties”) opcję „Shutdown the System” wedle naszych potrzeb na przykład dopisując konkretnego użytkownika:
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),
- tylko wybrane obiekty za pomocą opisywanych wcześniej filtrów.
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„.
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.
Czy mówimy o restarcie lokalnym (shutdown -r) czy zdalnym (shutdown -r -m \\nazwa maszyny)?
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
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?
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.
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.
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?
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,
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!
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.
cd… czy użytkownik musi być członkiem grupy Backup Operators – tak jak piszesz na początku artykułu ?
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.
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.
Jaki system operacyjny działa na tym restartowanym serwerze?