TWORZENIE GRUP I ZARZĄDZANIE OBIEKTAMI ZA POMOCĄ POWERSHELL

Wprowadzenie do lekcji

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

    1. Definicja grupy.
    Grupa jest jednostką administracyjną w 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ń - 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ć 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 grupy globalnej będą mogli z niej korzystać.
    5. Polecenia służące do zarządzania grupami i obiektami stosowane w PowerShell:
    dsmod - służy do modyfikowania obiektów, np. do dodawania użytkownika do grupy.
    dsquery - służy do przeszukania katalogu LDAP, w celu znalezienia obiektów, które spełniają określone kryteria.
    dsget - służy do wyświetlenia 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 Menedżera serwera--> Narzędzia--> Użytkownicy i komputery usługi Active Directory

Tworzenie grupy

Następnie zaznaczamy kontener lub jednostkę organizacyjną, gdzie będziemy tworzyć grupę i PPM wybieramy Nowy i Grupa

Określenie nazwy, typu i zakresu grupy

Podajemy nazwę grupy i 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 PPM wybieramy Właściwości. Przechodzimy na zakładkę 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 w opcję Dodaj możemy jakieś obiekty uczynić członkami tej grupy

Dodawanie użytkowników do grupy

Po kliknięciu 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 usera 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 Zastosuj lub OK

II. Tworzenie i usuwanie grupy przy użyciu 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 i bez. 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 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żytkownikaJames JB. Bonddo grupyKlasa2:
dsmod group "CN=klasa2,CN=Users,DC=elektronik,DC=local" -addmbr "CN=James JB. Bond,CN=Users,DC=elektronik,DC=local" Nasze polecenie wynonało się poprawnie

Potwierdzenie członkostwa w grupie

Sprawdzamy w 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 j.o. Informatycy za pomocą 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ą 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 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ą 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ńczone zostało sukcesem, co potwierdza także widok z 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 jakieś 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 jakichś 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 polecenie:
$ 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ść właśnie 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 AD - polecenie dsquery.

Polecenie dsquery - służy do przeszukania 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 zatem 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 zatem 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ątek użytkowników stosując polecenie:
$ 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 usera, w j.o. Pracownia jest 1 user, a w j.o. Informatycy mamy 4 useró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 jednostę organizacyjną Informatycy i dodamy wszystkich użytkowników w niej znajdujących się do 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żytkonicy 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 z 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 i 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.