Artykuły

A A A
Drukuj Ekportuj do PDF
Opublikowane: 2006.03.02 17:16 | Paweł Damian | Aktualizacja: 2011.10.07 23:35

Tworzenie własnych szablonów administracyjnych

tagi: Group Policy
Jest wielu administratorów, którzy zmagać się muszą z zarządzaniem wieloma komputerami i setkami użytkowników. Wśród codziennych zadań, takich jak instalacja oprogramowania, kontrola działania serwerów, czy obsługa użytkowników, na kluczowej pozycji znajduje się dbanie o bezpieczeństwo całego systemu. Co się z tym wiąże, szalenie istotne jest sprawne zarządzanie całą infrastrukturą. Świetnym narzędziem, do tego celu zresztą stworzonym, jest mechanizm Polis Grup (Group Policy).

Jest wielu administratorów, którzy zmagać się muszą z zarządzaniem wieloma komputerami i setkami użytkowników. Wśród codziennych zadań, takich jak instalacja oprogramowania, kontrola działania serwerów, czy obsługa użytkowników, na kluczowej pozycji znajduje się dbanie o bezpieczeństwo całego systemu. Co się z tym wiąże, szalenie istotne jest sprawne zarządzanie całą infrastrukturą. Świetnym narzędziem, do tego celu zresztą stworzonym, jest mechanizm Polis Grup (Group Policy). Z poziomu GPO mamy możliwość skonfigurowania szeregu ustawień systemu, pozwalających efektywnie zarządzać bezpieczeństwem nawet dużej sieci. Każdy kto kiedykolwiek miał okazję edytować rejestr systemu Windows wie, jak wiele ustawień się tam znajduje i jak bardzo można za jego pomocą wpłynąć na działanie systemu. GPO służy właśnie do wygodnego modyfikowania rejestru. Nie wymaga bowiem znajomości konkretnych kluczy. Wystarczy wybrać konfigurowaną opcję, zaznaczyć że ma być włączona a system staje się odpowiedzialny za wprowadzenie zmian do systemu. Pojawia się tu jednak pewien problem. GPO pozwala na edycję wielu ustawień. Pomimo tego, istnieje jednak szereg parametrów możliwych do skonfigurowania z poziomu rejestru, a niedostępnych poprzez mechanizm Polis Grup. Często też dysponujemy niestandardową aplikacją, wymagającą skonfigurowania pewnych dodatkowych opcji w rejestrze. Co więc możemy zrobić w takiej sytuacji? Oczywiście jedną z możliwości jest napisanie skryptów. Drugą, dużo bardziej elegancką, łatwiejszą w kontroli i zarządzaniu, jest stworzenie własnego szablonu administracyjnego.

Czym są szablony administracyjne

Szablony administracyjne, mówiąc dosłownie, są zwykłymi plikami tekstowymi. Napisane są jednak z użyciem specjalnego języka, którego podstawowa składnia została opisana dalej w tym artykule. Szablon zawiera różnego rodzaju ustawienia rejestru, które wpływają na środowisko pracy użytkownika. Ustawienia te dzielą się na dwie podstawowe klasy : polisy oraz preferencje. O ile większość tych pierwszych można skonfigurować poprzez GPO bez dodawania szablonu, o tyle te drugie wymagają już dodatkowej pracy. Polisy są ustawieniami aplikowanymi przy logowaniu i kasowanymi podczas wylogowywania. Są więc ulotne i usunięcie GPO powoduje że nie mają już więcej zastosowania. Preferencje natomiast są ustawieniami permanentnymi – tzn. pozostają nawet gdy GPO już nie obowiązuje. Należy więc konfigurować je z rozsądkiem i pamiętać o konieczności ‘ręcznego’ ich skasowania. Preferencje są zatem nieco inaczej traktowane przez GPO i domyślnie nie zobaczymy ich w drzewie ustawień (nawet po dodaniu szablonu).

Struktura szablonu

Szablon składa się z kilku specyficznych elementów, z których jedne mogą być zagnieżdżane w innych. Ogólny zarys budowy szablonu przedstawia się następująco:

 CLASS CATEGORY KEYNAME POLICYNAME PART VALUENAME END PART END POLICY END CATEGORY 

Każda z tych sekcji została bardziej szczegółowo opisana poniżej.

Sekcja CLASS

Każdy szablon musi zawierać przynajmniej jedną taką sekcję (ale może oczywiście mieć ich więcej), Parametr CLASS mówi, czy ustawienia które konfigurujemy dotyczą użytkownika (i pojawią się w sekcji GPO Konfiguracja użytkownika) czy też komputera (pojawią się w sekcji Konfiguracja komputera). Nietrudno się zatem domyślić, iż możliwe do zdefiniowania są dwie klasy: USER oraz MACHINE.

Sekcja CATEGORY

CATEGORY służy do grupowania kilku ustawień w pewną logiczną całość. W edytorze GPO ustawienia sekcji CATEGORY są widoczne w postaci folderów. Sekcje te mogą być zagnieżdżane, co pozwala na utworzenie struktury katalogów odpowiadającej tworzonym ustawieniom. Każdy element CATEGORY musi zostać zamknięty poprzez END CATEGORY. Przykładowy szablon może mieć postać:

 CLASS USER CATEGORY "Firma XYZ" CATEGORY "Aplikacja A" END CATEGORY CATEGORY "Aplikacja B" END CATEGORY END CATEGORY 
Rysunek 1

Sekcja KEYNAME

Jest to część wymagana przy tworzeniu jakiejkolwiek polisy. Parametr ten wskazuje na dokładną lokalizację klucza rejestru, który chcemy modyfikować. Możemy użyć tej sekcji tylko raz (jeżeli modyfikujemy wartości tylko jednego klucza) i wtedy umieszczamy ją bezpośrednio pod CATEGORY, lub też możemy powtórzyć ją wielokrotnie (modyfikujemy klucze różnych gałęzi) umieszczając wewnątrz PART lub POLICY. Jeżeli klucz rejestru zawiera znaki spacji, należy objąć go dodatkowo w podwójny apostrof. Sekcja KEYNAME nie wymaga zamykania słówkiem END. Przykładowy wpis mógłby więc wyglądać tak:

KEYNAME "Control Panel\Aplikacja A\KluczAA"

Sekcja VALUENAME

Sekcja ta określa nazwę wartości w rejestrze, którą chcemy modyfikować. Większość parametrów rejestru ma charakter binarny (0 – wyłączony, 1 – włączony), dlatego istnieją dwie specjalne opcje:

  • VALUEON – określa jaka wartość ma zostać wpisana do rejestru, jeżeli w GPO ustawienie zostanie włączone
  • VALUEOFF – określa jaka wartość ma zostać wpisana do rejestru, jeżeli w GPO ustawienie zostanie wyłączone

Sekcja POLICY

Parametr ten określa nazwę, pod jaką widnieje nasze ustawienie w edytorze GPO. Zazwyczaj występuje po słówku KEYNAME (jeżeli wszystkie ustawienia dotyczą jednego klucza) lub zawiera w sobie KEYNAME (jeżeli ustawienia dotyczą różnych kluczy rejestru). Poniższy przykład ilustruje działanie zarówno POLICY, jak i VALUENAME,VALUEON,VALUEOFF:

 CLASS USER CATEGORY "Firma XYZ" POLICY "Konsola pelnoekranowa" KEYNAME "Console" VALUENAME "FullScreen" VALUEON NUMERIC 1 VALUEOFF NUMERIC 0 END POLICY END CATEGORY 

Powyższy szablon powoduje dodanie opcji do edytora GPO pozwalającej na konfigurację zachowania konsoli cmd.exe:

Wyłączone Włączone
Ustawienia wyłączone Ustawienia włączone

Sekcja PART

Parametr ten jest używany do nadawania nazw pól występujących w edytorze GPO. Umożliwia też stworzenie listy elementów do wyboru, wyspecyfikowanie tekstu do wpisania, stworzenie ‘checkboxow’ itp. Umożliwia dodawanie do rejestru wartości różnych typów.

Sekcja EXPLAIN

Umożliwia ona dodanie opisu opcji w edytorze GPO. Tekst podany tutaj zostanie wyświetlony w zakładce Wyjaśnienie (Explain).

 CLASS USER CATEGORY "Firma XYZ" POLICY "Konsola pelnoekranowa" EXPLAIN !!opis KEYNAME "Console" VALUENAME "FullScreen" END POLICY END CATEGORY [strings] opis="Jest to pewna opcja, ktora wlasciwie niewiele robi." 
Rysunek

Pojawił się tutaj także pewien nowy mechanizm. Jak łatwo zauważyć, aby nie powtarzać w szablonie wielokrotnie łańcuchów dotyczących np. opisów błędów, można utworzyć sekcję [strings] i w niej umieścić często powtarzające się łańcuchy. W kodzie szablonu odwołujemy się do nich poprzez !!nazwa.

Typy wartości

Sekcja PART pozwala na dosyć elastyczne tworzenie interfejsu pojawiającego się później w edytorze GPO. Poniżej zostaną omówione podstawowe parametry występujące wraz z PART i przykłady ich użycia. Słówko REQUIRED będzie oznaczało, że dana część jest obowiązkowa i bez jej ustawienia skonfigurowanie opcji nie będzie możliwe.

Sekcja TEXT

Pozwala dodać linię tekstu do wyświetlanych opcji.

 CLASS USER CATEGORY "Firma XYZ" POLICY "Konsola pelnoekranowa" KEYNAME "Console" PART "Tutaj mozemy dodac jakis opis" TEXT END PART END POLICY END CATEGORY 

Sekcja EDITTEXT

Pozwala wyświetlić pole, w którym użytkownik może wpisać wartość, jaką chce przypisać konfigurowanemu kluczowi rejestru. Wartość ta będzie miała typ REG_SZ. Długość łańcucha może zostać ograniczona poprzez MAXLEN. Przykład użycia powyższych opcji:

 CLASS USER CATEGORY "Firma XYZ" POLICY "Konsola pelnoekranowa" KEYNAME "Console" PART "Nazwa pliku " EDITTEXT VALUENAME "FullScreen" END PART END POLICY END CATEGORY 

Sekcja CHECKBOX

Jak nazwa wskazuje, pozwala na dodanie pola w którym można zaznaczyć wybierane opcje. Co ważne, domyślną wartością przypisywaną kluczowi rejestru jest w przypadku zaznaczenia pola 1,a w przypadku odznaczenia 0. Aby zmienić to ustawienie, należy posłużyć się wspomnianymi wcześniej parametrami VALUEON i VALUEOFF.

 CLASS USER CATEGORY "Firma XYZ" POLICY "Konsola pelnoekranowa" KEYNAME "Console" PART "Dodatkowa opcja 1" CHECKBOX VALUENAME "FullScreen" END PART END POLICY END CATEGORY 

Sekcja COMBOBOX

Funkcjonalnie jest to opcja podobna do EDITTEXT, ale pozwalająca wyświetlić dodatkowo pomocniczą listę możliwych ustawień.

 CLASS USER CATEGORY "Firma XYZ" POLICY "Konsola pelnoekranowa" KEYNAME "Console" PART "Dodatkowa opcja 1" COMBOBOX VALUENAME "FullScreen" SUGGESTIONS opcja1a opcja1b opcja1c END SUGGESTIONS END PART END POLICY END CATEGORY 

Sekcja DROPDOWNLIST

Jest to bardzo przydatna opcja, pozwalająca na wyświetlenie interfejsu przyjaznego użytkownikowi. Może się zdarzyć, że za pewną opcję odpowiada np. wartość 540 w rejestrze, a za inną 523. Liczby te oczywiście niewiele mogą powiedzieć komuś, kto nie analizował danego wpisu. Poza tym, my sami za 5 czy 6 miesięcy możemy nie pamiętać, która liczba za co odpowiadała. DROPDOWNLIST pozwala ukryć wartości rozumiane przez system pod nazwami przyjaznymi użytkownikowi.

 CLASS USER CATEGORY "Firma XYZ" POLICY "Konsola pelnoekranowa" KEYNAME "Console" PART "Opcja do wyboru" DROPDOWNLIST VALUENAME "FullScreen" ITEMLIST NAME "Opcja1" VALUE "540" NAME "Opcja2" VALUE "523" END ITEMLIST END PART END POLICY END CATEGORY 

Sekcja LISTBOX

Jest to chyba najpotężniejsza z opcji. Umożliwia dodanie dowolnego wpisu w danym kluczu rejestru. Przy definiowaniu LISTBOXa nie musimy specyfikować VALUENAME. Myślę, że przykład najlepiej zobrazuje działanie tego parametru.

 CLASS USER CATEGORY "Firma XYZ" POLICY "Konsola pelnoekranowa" KEYNAME "Console" PART "Opcja do wyboru" LISTBOX EXPLICITVALUE END PART END POLICY END CATEGORY 

Sekcja NUMERIC

Typ ten, jak nazwa wskazuje, służy do ustawiania wartości rejestru traktowanych jako liczby. Za pomocą SPIN możliwe jest ponadto określenie kroku, z jakim wartości będą zwiększane lub zmniejszane. Ograniczenie na daną wartość z dołu i z góry ustawia się za pomocą MIN i MAX. Za pomocą parametru TXTCONVERT można spowodować, że wartość będzie wpisywana do rejestru jako tekst a nie liczba. Ponadto DEFAULT ustawia wartość na domyślną przy pierwszej edycji danej opcji.

 CLASS USER CATEGORY "Firma XYZ" POLICY "Konsola pelnoekranowa" KEYNAME "Console" PART "Jakas wartosc liczbowa" NUMERIC MIN 10 MAX 50 SPIN 5 VALUENAME "FullScreen" END PART END POLICY END CATEGORY 

Importowanie szablonów

Wiemy już, jak szablony są zbudowane. Potrafimy otworzyć notatnik i wpisać tam odpowiedni kod. Pojawia się jednak pytanie, co z tym dalej zrobić? Otóż sprawa jest bardzo prosta. Zapisujemy nasz szablon jako plik z rozszerzeniem .adm a następnie:

  1. Otwieramy edytor GPO i rozwijamy odpowiednią sekcję (użytkownika lub komputera):

    Rysunek
  2. Wybieramy opcję Dodaj/Usuń szablony (Add/Remove Templates):

    Rysunek
  3. Klikamy Dodaj (Add):

    Rysunek
  4. Wybieramy wcześniej zapisany szablon.
  5. Powinien pojawić się on w liście aktualnych szablonów. Klikamy Zamknij (Close).
  6. Jako że konfigurujemy Preferencje, które domyślnie nie są wyświetlane w edytorze GPO, musimy wyłączyć ich ukrywanie:

    Rysunek
  7. W tym momencie efekt naszej pracy powinien już być widoczny:

    Rysunek

Podsumowanie

Szablony stanowią bardzo potężne i elastyczne narzędzie, które na pewno ułatwi pracę niejednego administratora. Nie jednak zapominać, iż modyfikacje rejestru mogą całkowicie uszkodzić system, w związku z tym należy podchodzić do nich z rozwagą i dobrze wiedzieć które ustawienie za co odpowiada. Choć język opisu szablonów jest dosyć nietypowy, to jednak jego składnia niezbyt skomplikowana. Stwarza to możliwość szybkiego opanowania bardzo przydatnej technologii.

Autor: Paweł Damian (MCSA)

Spis treści

Artykuł autorstwa Czytelnika portalu opublikowany w ramach akcji Popisz się. Nie odpowiadamy za prezentowane treści.


Komentarze 9 Masz uwagi do tej strony? Napisz

mojlogin 2006.03.06 14:45
0 oceń pozytywnie   oceń negatywnie 0
avatar
 
Czy można by do artykułów dołączyć wersję w pliku formatu DOC, lub PDF lub wersję przygotowaną do wydruku?

Dzięki


Tomek, Świętochłowice

Tomek

hermanluk 2006.03.06 15:59
0 oceń pozytywnie   oceń negatywnie 0
avatar Ekspert WSS
 
Jak włączysz sobie w przeglądarce podgląd wydruku to powinieneś otrzymac wersję która nadaje się do druku.
chwascior 2006.03.10 12:07
0 oceń pozytywnie   oceń negatywnie 0
avatar
 
Jednym słowem: DZIĘKI !!! Bardzo przydatna wiedza.

Pozdrawiam
horhe358 2006.03.12 12:14
0 oceń pozytywnie   oceń negatywnie 0
avatar
 
O ;) Fajnie że ktoś to jednak czyta ;) Cieszę się że na coś się te gryzmoly przydały.


pozdr.Paweł

horhe358 2006.03.12 12:16
0 oceń pozytywnie   oceń negatywnie 0
avatar
 
Jeżeli chodzi o mnie to nie widzę przeszkód, więc to tylko kwestia decyzji redakcji. Ja mogę pdf'a bez problemu udostępnić, lub nawet dosłać do artykułu żeby go tutaj redaktor podpiął. A co do drukowania z poziomu strony, to nie wiem jak w IE, ale spod Mozilli pozostawia to bardzo dużo do życzenia...

pozdr.Paweł

fiording 2006.03.23 17:36
0 oceń pozytywnie   oceń negatywnie 0
avatar
 
Dobry i przydatny artykuł.
Niestety mam problem aby zmienić dane binarne w rejestrze REG_BINARY. Ktoś wie jak to można zrobić?

horhe358 2006.04.03 12:48
0 oceń pozytywnie   oceń negatywnie 0
avatar
 
Niestety nie napisałem tego w artykule, ale wartości reg_binary nie da się ustawić szablonami. To jedno z większych ograniczeń. W tym przypadku pozostaje napisanie skryptu który by to robił albo poczekanie na Viste ;) Wiem, że tam ma się sporo zmienić jeżeli chodzi o szablony. Główną zmianą będzie, co nietrudno zgadnąć, zmiana formatu na xml.

pozdr.Paweł

GaaD 2007.03.05 10:39
0 oceń pozytywnie   oceń negatywnie 0
avatar
 
Prosze o wiecej takich atrykulow.
markus997 2009.02.16 13:04
0 oceń pozytywnie   oceń negatywnie 0
avatar
 
Tego właśnie szukałem i jak zawsze trafiłem an stronę wss.pl :)

Dodaj komentarz

avatar

Zaloguj się lub Zarejestruj się aby wykonać tę czynność.

Autor Paweł Damian
avatar
 

Windows Systems Administrator MCP, MCSA+S, MCSE+S, MCT, SEClub, CCNA

Załóż konto
WSS to serwis, który łączy dziesiątki tysięcy specjalistów IT w Polsce, zajmujących się szeroko pojętymi technologiami Microsoft. Portal działa od 2003 roku, i oprócz setek publikacji technicznych, rozwijającego się forum - portal to ludzie, którzy go tworzą. To właśnie z myślą o nich warto codziennie nas odwiedzać.

Dowiedz się więcej o WSS

vGuru - Zostań Guru Wirtualizacji

 

MetroOne

Idź na górę strony