TWORZENIE GRUP I ZARZĄDZANIE OBIEKTAMI ZA POMOCĄ POWERSHELL

Wprowadzenie do lekcji

Aby rozpocząć operacje na grupach w systemie Windows Server, należy poznać kilka podstawowych pojęć dotyczących tego zagadnienia. Dodatkowo w lekcji tej wprowadzone zostaną polecenia stosowane w programie PowerShell, które ułatwiają zarządzanie grupami oraz innymi obiektami.


1. Definicja grupy.
Grupa jest jednostką administracyjną w usłudze Active Directory, tworzoną w celu nadania określonych uprawnień dostępu do zasobów systemu oraz umieszczenia w niej różnych obiektów.


2. Kategorie grup – typy.
– grupa dystrybucyjna – nie można jej przypisywać uprawnień ani zabezpieczeń i służy do dystrybuowania wiadomości e-mail,
– grupa zabezpieczeń – służy do przyznawania uprawnień do obiektów (posiada też możliwości grupy dystrybucyjnej).


3. Rodzaje grup zabezpieczeń.
– globalne – nie mogą zawierać członków innych domen, ale ich członkom można nadać dostęp do zasobów z innych domen,
– uniwersalne – mogą należeć do niej grupy uniwersalne, globalne oraz obiekty z dowolnej domeny i można jej przypisać uprawnienia do obiektów z różnych domen,
– lokalne w domenie – do takiej grupy mogą należeć obiekty i grupy globalne z dowolnej domeny, ale nie może być ona członkiem grupy globalnej. Natomiast uprawnienia można przypisywać do obiektów z tej samej domeny.


4. Praktyczny przykład zastosowania grup.
Załóżmy, że w firmie mamy 10 użytkowników i chcemy, aby każdy z nich miał dostęp do tej samej drukarki, a potem do kolejnej, nowej drukarki.
Sposób 1:
– wszystkie 10 kont użytkowników umieszczamy na liście uprawnień do pierwszej drukarki,
– gdy dostaniemy nową drukarkę, czynność musimy powtórzyć.
Sposób 2:
– tworzymy grupę lokalną w domenie i przypisujemy tej grupie dostęp do drukarki,
– tworzymy grupę globalną i tam „wrzucamy” naszych 10 użytkowników,
– naszą grupę globalną przypisujemy do grupy lokalnej i wszyscy nasi użytkownicy mają dostęp do drukarki,
– gdy pojawi się nowa drukarka, wystarczy grupie lokalnej nadać do niej dostęp, a nasi użytkownicy z grupy globalnej będą mogli z niej korzystać.


5. Polecenia służące do zarządzania grupami i obiektami stosowane w programie PowerShell:
– dsmod – służy do modyfikowania obiektów, np. do dodawania użytkownika do grupy,
– dsquery – służy do przeszukiwania katalogu LDAP w celu znalezienia obiektów, które spełniają określone kryteria,
– dsget – służy do wyświetlania właściwości ogólnych i szczegółowych danego obiektu.

I. Tworzenie grupy.

Przystawka użytkownicy i komputery usługi AD

Aby utworzyć nową grupę w domenie, należy wybrać z menu „Menedżera serwera” opcję „Narzędzia”, a następnie „Użytkownicy i komputery usługi Active Directory”.

Tworzenie grupy

Następnie zaznaczamy kontener lub jednostkę organizacyjną, gdzie będziemy tworzyć grupę, i klikając prawym przyciskiem myszy (PPM), wybieramy opcję „Nowy”, a potem „Grupa”.

Określenie nazwy, typu i zakresu grupy

Podajemy nazwę grupy oraz określamy jej typ i zakres. U nas będzie to grupa zabezpieczeń o zakresie lokalnym o nazwie Klasa2. Wprowadzamy nazwę i naciskamy „OK”.

Sprawdzenie naszej grupy w AD

Możemy teraz sprawdzić, czy nasza grupa została utworzona w kontenerze Users.

Sprawdzanie członków grupy

Zaznaczamy teraz naszą grupę i klikając ją prawym przyciskiem myszy (PPM), wybieramy „Właściwości”. Przechodzimy do zakładki „Członkowie” i widzimy, że nasza grupa nie ma żadnych członków. Jest to zrozumiałe, ponieważ jest to nowy obiekt, który został przed chwilą utworzony. Klikając opcję „Dodaj…”, możemy uczynić wybrane obiekty członkami tej grupy.

Dodawanie użytkowników do grupy

Po kliknięciu przycisku „Dodaj” pojawia nam się okno, w którym wyszukujemy użytkownika James JB. Bond i dodajemy go do naszej grupy. Najpierw wpisujemy np. imię, następnie klikamy „Sprawdź nazwy”, a potem wybieramy właściwego użytkownika i klikamy „OK”.

Zatwierdzenie użytkownika

Jeśli nazwa naszego użytkownika się zgadza, klikamy jeszcze raz „OK”.

Potwierdzenie członkostwa w grupie

I widzimy, że nasz obiekt jest już członkiem grupy Klasa2. Naciskamy „Zastosuj” i „OK”.

Usuwanie użytkownika z grupy

Usuwanie członków z grupy odbywa się analogicznie. Zaznaczamy naszego użytkownika, klikamy „Usuń” i potwierdzamy, naciskając „Tak”. W prawym oknie widzimy, że naszego użytkownika już nie ma. Pamiętajmy tylko, aby to zatwierdzić, naciskając przycisk „Zastosuj” lub „OK”.

II. Tworzenie i usuwanie grupy przy użyciu programu PowerShell – polecenia dsadd i dsrm.

Do utworzenia grupy, podobnie jak w przypadku tworzenia użytkowników, wykorzystamy polecenie dsadd. Składnia jest następująca:
dsadd obiekt nazwa_DN_obiektu [przełączniki]
Przełączniki mogą być następujące:
– secgrp no – wtedy utworzymy grupę dystrybucyjną. Bez tego przełącznika domyślnie będzie nam się tworzyć grupa zabezpieczeń.
– scope (l, g, u) – określa nam zakres: l – lokalny, g – globalny, u – uniwersalny. Jeśli nie użyjemy żadnego przełącznika, to utworzy nam się grupa globalna.

Tworzenie dwóch grup

Stworzymy teraz dwie grupy zabezpieczeń: Elektronicy i Automatycy o zasięgu globalnym w kontenerze Users, stosując opcję z przełącznikami oraz bez nich. Użyjemy poleceń:
$ dsadd group "CN=Elektronicy,CN=Users,DC=elektronik,DC=local" -secgrp yes -scope g
$ dsadd group "CN=Automatycy,CN=Users,DC=elektronik,DC=local"

Sprawdzenie utworzonych grup

Sprawdzamy w usłudze AD, czy nasze grupy zostały utworzone, i widzimy, że wszystko się zgadza.

Usuwanie grup

Do usunięcia naszych grup użyjemy znanego już polecenia dsrm. Pełna składnia wygląda następująco:
$ dsrm "CN=Elektronicy,CN=Users,DC=elektronik,DC=local"
$ dsrm "CN=Automatycy,CN=Users,DC=elektronik,DC=local"
I widzimy, że usunięcie grup zakończyło się sukcesem.

III. Dodawanie użytkowników do grupy oraz ich usuwanie z niej – polecenie dsmod.

Dodawanie użytkownika do grupy

Wykorzystamy do tego polecenie dsmod. Składnia jest następująca:
dsmod group nazwa_DN_grupy -addmbr nazwa_DN_użytkownika
Przykład 1:
Dodajemy użytkownika James JB. Bond do grupy Klasa2:
dsmod group "CN=klasa2,CN=Users,DC=elektronik,DC=local" -addmbr "CN=James JB. Bond,CN=Users,DC=elektronik,DC=local"
Nasze polecenie wykonało się poprawnie.

Potwierdzenie członkostwa w grupie

Sprawdzamy w usłudze Active Directory, czy ten użytkownik faktycznie jest członkiem grupy Klasa2. Widzimy, że wszystko się zgadza.

Tworzenie trzech nowych użytkowników

Możemy jednocześnie dodać do grupy więcej użytkowników. Musimy tylko stworzyć na potrzeby ćwiczenia trzech kolejnych użytkowników. Utworzymy ich w jednostce organizacyjnej Informatycy za pomocą programu PowerShell:
$ dsadd user "CN=James JB. Bond01,OU=Informatycy,DC=elektronik,DC=local" -fn James -ln Bond01 -upn [email protected] -mi JB -pwd 1qazXSW@
$ dsadd user "CN=James JB. Bond02,OU=Informatycy,DC=elektronik,DC=local" -fn James -ln Bond02 -upn [email protected] -mi JB -pwd 1qazXSW@
$ dsadd user "CN=James JB. Bond03,OU=Informatycy,DC=elektronik,DC=local" -fn James -ln Bond03 -upn [email protected] -mi JB -pwd 1qazXSW@

Dodawanie kilku użytkowników do grupy

Przykład 2:
Teraz, mając już tych użytkowników, możemy ich dodać jednym poleceniem do naszej grupy Klasa2 za pomocą programu PowerShell:
$ dsmod group "CN=Klasa2,CN=Users,DC=elektronik,DC=local" -addmbr "CN=James JB. Bond01,OU=Informatycy,DC=elektronik,DC=local" "CN=James JB. Bond02,OU=Informatycy,DC=elektronik,DC=local" "CN=James JB. Bond03,OU=Informatycy,DC=elektronik,DC=local"

Potwierdzenie członkostwa w grupie

Teraz sprawdzamy w usłudze AD, czy ci użytkownicy są członkami grupy Klasa2, i widzimy, że tak się właśnie stało.

Potwierdzenie usunięcia użytkownika z grupy

Na koniec usuniemy użytkownika z grupy Klasa2 za pomocą polecenia dsmod. Składnia jest następująca:
dsmod group nazwa_DN_grupy -rmmbr nazwa_DN_użytkownika
Przykład 3:
Usuwamy użytkownika James JB. Bond z grupy Klasa2, stosując polecenie:
$ dsmod group "CN=klasa2,CN=Users,DC=elektronik,DC=local" -rmmbr "CN=James JB. Bond,CN=Users,DC=elektronik,DC=local"
Jak widać, polecenie zakończyło się sukcesem, co potwierdza także widok z usługi AD.

IV. Sprawdzanie informacji o grupie i użytkownikach – polecenie dsget.

Polecenie dsget umożliwia wyświetlanie szczegółowych informacji zarówno o użytkownikach, jak i grupach.
1. Informacje, które można uzyskać o grupie, dotyczą:
– właściwości grupy, takich jak np. opis (-desc), typ (-secgrp), zakres (-scope) itp.,
– listy członków grupy przy użyciu przełącznika -members,
– przynależności do innej grupy przy użyciu przełącznika -memberof.
2. Podobne informacje można uzyskać o użytkownikach. Dotyczą one:
– właściwości konta użytkownika, takich jak np. opis (-desc), imię (-fn), login (-upn) itp.,
– przynależności do grupy przy użyciu przełącznika -memberof (bezpośredniej) i -expand (pośredniej).

Sprawdzanie członków grupy

Najpierw pozyskamy informacje o grupie. Składnia polecenia jest następująca:
dsget group nazwa_DN_obiektu [przełączniki].
Przykład 1:
Na początek sprawdzimy członków grupy Klasa2. Użyjemy więc polecenia:
$ dsget group "CN=Klasa2,CN=Users,DC=elektronik,DC=local" -members
I widzimy, że nasza grupa ma obecnie trzech członków.

Sprawdzanie właściwości grupy

Kolejną rzeczą może być sprawdzenie właściwości grupy. Składnia polecenia jest następująca:
dsget group nazwa_DN_obiektu [przełączniki].
Przykład 2:
U nas sprawdzimy typ oraz zakres grupy Klasa2. Możemy zrobić to odrębnymi poleceniami lub jednym:
$ dsget group "CN=Klasa2,CN=Users,DC=elektronik,DC=local" -secgrp
$ dsget group "CN=Klasa2,CN=Users,DC=elektronik,DC=local" -scope
$ dsget group "CN=Klasa2,CN=Users,DC=elektronik,DC=local" -secgrp -scope
I widzimy, że jest to grupa zabezpieczeń o zakresie lokalnym.

Sprawdzanie przynależności do grupy

Kolejnym zastosowaniem polecenia dsget może być sprawdzenie przynależności użytkownika do grupy. Składnia polecenia jest następująca:
dsget user nazwa_DN_obiektu [przełączniki] [-memberof lub -expand].
Przykład 3:
Najpierw sprawdzimy, do jakiej grupy (grup) jest bezpośrednio przypisany James JB. Bond03. Użyjemy do tego polecenia:
$ dsget user "CN=James JB. Bond03,OU=Informatycy,DC=elektronik,DC=local" -memberof
Efekt polecenia jest taki, że nasz użytkownik bezpośrednio należy do dwóch grup: Klasa2 i Użytkownicy domeny.

Sprawdzanie przynależności do grupy

Przykład 4:
W kolejnym przykładzie sprawdzimy, do jakiej grupy (grup) jest ogólnie (pośrednio i bezpośrednio) przypisany James JB. Bond03. Użyjemy do tego prawie takiego samego polecenia jak w przykładzie 3, ale dodamy parametr -expand:
$ dsget user "CN=James JB. Bond03,OU=Informatycy,DC=elektronik,DC=local" -memberof -expand
Efekt polecenia jest taki, że nasz użytkownik należy do trzech grup: Klasa2, Użytkownicy domeny oraz Użytkownicy. Oznacza to, że jedna z dwóch pierwszych grup jest członkiem grupy Użytkownicy.

Sprawdzanie przynależności do grupy

Przykład 5:
Oczywiście zależność z przykładu 4 możemy w bardzo prosty sposób sprawdzić. Wystarczy sprawdzić, do jakiej grupy należą grupy Klasa2 i Użytkownicy domeny. Użyjemy do tego polecenia z przykładu 3:
$ dsget group "CN=Klasa2,CN=Users,DC=elektronik,DC=local" -memberof
$ dsget group "CN=Użytkownicy domeny,CN=Users,DC=elektronik,DC=local" -memberof
Efekt polecenia jest taki, że grupa Użytkownicy domeny jest przypisana do grupy Użytkownicy i stąd nasz użytkownik James JB. Bond03 zyskał pośrednią przynależność do grupy Użytkownicy.

Sprawdzanie właściwości użytkownika

Na koniec, podobnie jak w przypadku grupy w przykładzie 2, sprawdzimy właściwości konkretnego użytkownika. Składnia polecenia jest następująca:
dsget user nazwa_DN_obiektu [przełączniki].
Przykład 6:
U nas sprawdzimy login, opis oraz nazwisko dwóch użytkowników. Zrobimy to odrębnymi poleceniami oraz kompleksowymi (kolor zielony):
$ dsget user "CN=James JB. Bond03,OU=Informatycy,DC=elektronik,DC=local" -ln
$ dsget user "CN=James JB. Bond03,OU=Informatycy,DC=elektronik,DC=local" -desc
$ dsget user "CN=James JB. Bond03,OU=Informatycy,DC=elektronik,DC=local" -upn
$ dsget user "CN=James JB. Bond03,OU=Informatycy,DC=elektronik,DC=local" -ln -desc -upn
$ dsget user "CN=James JB. Bond,CN=Users,DC=elektronik,DC=local" -ln
$ dsget user "CN=James JB. Bond,CN=Users,DC=elektronik,DC=local" -desc
$ dsget user "CN=James JB. Bond,CN=Users,DC=elektronik,DC=local" -upn
$ dsget user "CN=James JB. Bond,CN=Users,DC=elektronik,DC=local" -ln -desc -upn

V. Wyszukiwanie obiektów w usłudze AD – polecenie dsquery.

Polecenie dsquery służy do przeszukiwania katalogu LDAP w celu znalezienia obiektów, które spełniają określone kryteria. Mówiąc krótko, używając tego polecenia, możemy np. sprawdzić, jakich mamy użytkowników w domenie bądź konkretnym kontenerze. Podobne zapytania możemy wydawać pod kątem innych obiektów, np. grup, kontenerów lub jednostek organizacyjnych.

Wyszukanie wszystkich użytkowników domeny

W pierwszej kolejności możemy zatem wykorzystać dsquery do wyszukania wszystkich użytkowników naszej domeny. Składnia ogólna polecenia jest następująca:
dsquery user nazwa_DN_obiektu.
Przykład 1:
Wyszukamy wszystkich użytkowników domeny elektronik poleceniem:
$ dsquery user
Widzimy, że w naszej domenie mamy 5 użytkowników utworzonych przez nas oraz 3 konta systemowe.

Wyszukanie użytkowników w kontenerze Informatycy

W podobny sposób możemy sprawdzić jednostki organizacyjne (j.o.) czy też grupy znajdujące się w naszej domenie. Składnia ogólna polecenia jest następująca:
dsquery typ_obiektu nazwa_DN_obiektu.
Przykład 2:
Przeszukamy naszą domenę pod kątem jednostek organizacyjnych, stosując polecenie:
$ dsquery ou
Widzimy, że w naszej domenie mamy 3 j.o. utworzone przez nas oraz 1 j.o. systemową.

Przeszukanie jednostek organizacyjnych pod kątem użytkowników

Przykład 3:
Teraz sprawdzimy wszystkie utworzone przez nas jednostki organizacyjne pod kątem użytkowników, stosując polecenia:
$ dsquery user "OU=Klasa,OU=Pracownia,OU=Informatycy,DC=elektronik,DC=local"
$ dsquery user "OU=Pracownia,OU=Informatycy,DC=elektronik,DC=local"
$ dsquery user "OU=Informatycy,DC=elektronik,DC=local"
Widzimy, że w j.o. Klasa nie ma żadnego użytkownika, w j.o. Pracownia jest 1 użytkownik, a w j.o. Informatycy mamy 4 użytkowników (3 bezpośrednio i 1 pośrednio).

Dodawanie większej ilości użytkowników do grupy

Teraz wykorzystamy możliwość wyszukiwania obiektów do zbiorowego dodawania ich do dowolnej grupy.
Przykład 4:
Na potrzeby ćwiczenia utworzymy grupę zabezpieczeń o zakresie globalnym o nazwie Testerzy:
$ dsadd group "CN=Testerzy,CN=Users,DC=elektronik,DC=local" -secgrp yes -scope g
a następnie, korzystając z polecenia dsquery, przeszukamy jednostkę organizacyjną Informatycy i dodamy wszystkich znajdujących się w niej użytkowników do utworzonej przez nas grupy. Polecenie będzie miało postać:
$ dsquery ou "OU=Informatycy,DC=elektronik,DC=local" | dsmod group "CN=Testerzy,CN=Users,DC=elektronik,DC=local" -addmbr
Mówiąc krótko, stosując znak "|" (pipe), łączymy ze sobą dwa polecenia. Pierwsze wyszukuje użytkowników, a drugie dodaje wyszukanych użytkowników do grupy.

Sprawdzanie przynależności do grupy

Na koniec sprawdzamy, czy nasi użytkownicy faktycznie zostali dodani do grupy Testerzy znanym już poleceniem:
$ dsget group "CN=Testerzy,CN=Users,DC=elektronik,DC=local" -members
Oczywiście wszystko się zgadza – nasi użytkownicy są już przypisani do tej grupy, a gdy sprawdzimy przynależność jednego z użytkowników do grupy poleceniem:
$ dsget user "CN=James JB. Bond01,OU=Users,DC=elektronik,DC=local" -memberof
to widzimy, że jest on członkiem m.in. grupy Testerzy.

Zadanie do wykonania na lekcji

Wszystkie czynności udokumentuj zrzutami ekranu i umieść w sprawozdaniu.

  1. Korzystając z przystawki „Użytkownicy i komputery usługi AD”, utwórz jednostkę organizacyjną Grupy, a w niej:
    • grupę zabezpieczeń Informatyk o zasięgu globalnym i przypisz do niej trzech użytkowników,
    • grupę zabezpieczeń Elektronik o zasięgu lokalnym i przypisz do niej trzech nowych użytkowników oraz grupę Informatyk,
    • grupę zabezpieczeń Zawody o zasięgu lokalnym i przypisz do niej grupę Elektronik.
  2. Korzystając z konsoli i polecenia dsget:
    • sprawdź, do jakich grup należy (pośrednio i bezpośrednio) wybrany użytkownik z grupy Informatyk,
    • sprawdź, do jakich grup należy (pośrednio i bezpośrednio) wybrany użytkownik z grupy Elektronik,
    • sprawdź, jakich członków ma grupa Informatyk,
    • sprawdź, jakich członków ma grupa Elektronik.
  3. Korzystając z konsoli i poleceń dsadd, dsmod, dsquery:
    • utwórz w j.o. Grupy grupę zabezpieczeń Drukarki1 o zasięgu lokalnym – załóżmy, że umożliwia ona korzystanie z drukarki 1,
    • utwórz w j.o. Grupy grupę zabezpieczeń Drukarki2 o zasięgu lokalnym – załóżmy, że umożliwia ona korzystanie z drukarki 2,
    • utwórz w domenie jednostkę organizacyjną Programowanie, a w niej pięciu nowych użytkowników,
    • utwórz w j.o. Grupy grupę zabezpieczeń Program o zasięgu globalnym,
    • jednym poleceniem przypisz użytkowników z j.o. Programowanie do grupy Program,
    • utwórz w domenie jednostkę organizacyjną Grafika, a w niej pięciu nowych użytkowników,
    • utwórz w j.o. Grupy grupę zabezpieczeń Graf o zasięgu globalnym,
    • jednym poleceniem przypisz użytkowników z j.o. Grafika do grupy Graf,
    • zrób tak, aby użytkownicy z j.o. Programowanie mogli korzystać z obu drukarek, a użytkownicy z j.o. Grafika tylko z drukarki 1,
  4. Korzystając z konsoli i poleceń dsget i dsquery:
    • wyświetl, do jakich grup należy dowolny użytkownik z j.o. Grafika oraz Programowanie,
    • wyświetl, do jakich grup należy (pośrednio i bezpośrednio) dowolny użytkownik z j.o. Grafika oraz Programowanie,
    • wyświetl, jakie grupy znajdują się w j.o. Grupy,
    • sprawdź, jakich członków ma grupa Graf,
    • sprawdź, jakich członków ma grupa Program.