View Łukasz Herman's LinkedIn profileView my profile

statystyki www stat.pl

sobota, 09 lipca 2011

Jakiś czas temu wymyśliłem sobie, ża fajnie by było, gdyby wszystkie zaplanowane zadania, takie jak na przykład backup, konfigurowane były z jednego centralnego miejsca. Oczywiście najlepszym na to rozwiązaniem było skorzystanie z GPO, a zaplanowane zadanie uruchamiać w kontekście dedykowanego użytkownika (z rolą Backup Operator, bo chce tylko backupy robić).

Wielkie było jednak moje zdziwienie, gdy okazało się że nie mogę ręcznie uruchamiać zadań z Task Schedulera, mimo że ustawiłem możliwość uruchamiania On Demand.

Po wielu mozolnych testach, rekonfiguracji, itd. zauważyłem że tylko konto Administrator może uruchamiać ręcznie to zadanie. Inny użytkownik, nawet jeżeli byłby w grupie Enterprise Admin, za każdy razem dostaje komunikat:

"The user account does not have permission to run this task"

Trochę googlowania przyniosło efekt odnalezienie wątku na technecie z podobnym problemem. Padło tam przypuszczenie, że jest to bug w Group Policy Preferences. Faktycznie, tworząc to zadanie ręcznie z dokładnie taką samą konfiguracją (porównywałem XMLe po wyeksportowaniu zadania), zadanie utworzone lokalnie działa jak powinno, zadanie utworzone przez GPO wywala błąd o braku uprawnień.

Po dalszych wnikliwych poszukiwaniach w końcu odnalazłem rozwiązanie problemu. Zadania tworzone przez GPO różnią się jednym małym szczegółem od tych utworzonych lokalnie.

Otóż aby zaczęło to działać, ręcznie musimy dodać uprawnienie Full Control dla grupy BUILTIN\Administrators do utworzonego zadania. Zadanie tworzone lokalnie ma to domyślnie, zadanie utworzone z poziomu GPO daje uprawnienia grupie NT AUTHORITY\SYSTEM zamiast administratorom. Czy jest to bug, czy może zamierzone działania, nie mam pojęcia. Ale chyba  nie powinno to tak wyglądać.

Teraz wystarczy ręcznie nadać odpowiednie uprawnienia wykonując polecenie:

cacls %systemroot%\system32\Tasks\[NAZWA ZADANIA] /e /g BUILTIN\Administrators:F

Oczywiście skoro chce scentralizować zadanie, nie będę biegał po wszystkich serwerach, tylko skorzystam ponownie z GPO i ustawie zabezpieczenia na katalog z wszystkimi zadaniami. Wadą nadawania uprawnień przez GPO jest brak możliwości dodania uprawnienia, zawsze nadpisywane są aktualne listy ACL.