Microsoft Active Directory służy jako scentralizowany punkt do administracji, autoryzacji i uwierzytelniania. W AD, dostęp do zasobów sieciowych jest przyznawany zasadom bezpieczeństwa, takim jak konta użytkowników i konta komputerów, a uprawnienia te mogą się zmieniać w czasie. Aby uprościć zarządzanie dostępem i poprawić bezpieczeństwo, średnie i duże firmy często korzystają z grup bezpieczeństwa Active Directory, które mogą zawierać konta użytkowników, konta komputerów i inne grupy. Często używają również grup dystrybucyjnych do zarządzania listami dystrybucyjnymi poczty elektronicznej. Zarówno grupy zabezpieczeń, jak i grupy dystrybucyjne mają unikalne identyfikatory zabezpieczeń (SID) i globalnie unikalne identyfikatory (GUID).

Instrukcja ADUC MMC jest świetna do zarządzania obydwoma typami grup, ale PowerShell jest znacznie bardziej efektywnym sposobem na zarządzanie nimi masowo.

Jeśli nie jesteś jeszcze zaznajomiony z grupami AD i zarządzaniem grupami, przeczytaj przewodnik Active Directory Group Management Best Practice zanim przejdziesz dalej.

Pamiętaj również, że aby użyć tych skryptów PowerShell, musisz zaimportować moduł do interakcji z AD – Active Directory Module for Microsoft Windows PowerShell. Moduł ten został wprowadzony w Windows Server 2008 R2 i jest domyślnie włączony w Windows Server 2012 i nowszych. Pełną listę cmdletów modułu AD można uzyskać, wykonując następujące polecenie:

Get-Command -Module ActiveDirectory

Pełna lista zawiera 147 cmdletów, ale tylko te jedenaście jest związanych z grupami Active Directory:

  • Add-ADGroupMember
  • Add-ADPrincipalGroupMembership
  • Get-.ADAccountAuthorizationGroup
  • Get-ADGroup
  • Get-ADGroupMember
  • Get-ADPrincipalGroupMembership
  • New-ADGroup
  • Remove-ADGroup
  • Remove-ADGroupMember
  • Remove-ADPrincipalGroupMembership
  • Set-ADGroup

Tworzenie grupy Active Directory za pomocą PowerShell

Aby utworzyć grupę AD, należy użyć cmdleta New-ADGroup. Jego składnię można poznać, uruchamiając następujące polecenie:

Get-Command New-ADGroup –Syntax

Najprostszym sposobem utworzenia grupy jest uruchomienie tego krótkiego skryptu:

New-ADGroup "Group Name"

System poprosi o podanie parametru „GroupScope”, a następnie utworzy nową grupę. Grupa ta będzie miała jednak wartości domyślne, takie jak:

  • Zostanie utworzona w domyślnym kontenerze LDAP o nazwie „Users”.
  • Będzie miała typ grupy „Security”.
  • Pola members, member of, description, email i notes będą puste.

Wyobraźmy sobie, że chcemy utworzyć grupę bezpieczeństwa o nazwie „Quality” w naszym AD DC. Użyjmy następujących parametrów: Powinna ona znajdować się w „Production” OU (-Path), powinna być grupą bezpieczeństwa (-GroupCategory), oraz powinna być globalna (-GroupScope).

New-ADGroup "Quality" -Path "OU=Production,DC=enterprise,dc=com" -GroupCategory Security -GroupScope Global -PassThru –Verbose

Jeśli chcesz stworzyć uniwersalną grupę dystrybucyjną, po prostu zmień parametr -GroupCategory na „Distribution”, a parametr -GroupScope na „Universal”. Możesz również zmienić ścieżkę LDAP, zmieniając parametr -Path.

Deleting an Active Directory Group with PowerShell

Aby usunąć grupę AD, użyj cmdleta Remove-ADGroup. Najprostszy skrypt będzie wyglądał następująco:

Remove-ADGroup -Identity Quality

Wtedy zostaniesz poproszony o potwierdzenie usunięcia grupy.

Adding Users and Computers to a Group with PowerShell

Możesz dodać użytkowników do grupy AD za pomocą cmdletu Add-AdGroupMember. Na przykład, jeśli chcesz dodać dwóch użytkowników, B.Jackson i E.Franklin, do grupy „Quality”, oto jak wyglądałby skrypt:

Add-AdGroupMember -Identity Quality -Members B.Jackson, E.Franklin

Po dodaniu użytkowników do grupy zabezpieczeń można uruchomić poniższy skrypt, aby sprawdzić, czy są oni wymienieni jako członkowie:

Get-ADGroupMember -Identity Quality

Jeśli potrzebujesz dodać użytkowników do innej grupy zabezpieczeń lub dystrybucji, takiej jak „Administratorzy domeny”, określ „Administratorzy domeny” jako wartość parametru -Identity. Jeśli chcesz, aby jedna grupa była członkiem innej grupy, podaj nazwę grupy jako wartość parametru -Members. Ta sama zasada dotyczy kont komputerowych, ale należy dodać znak dolara ($) na końcu nazwy konta komputerowego. Na przykład, aby dodać komputer „WKS043” do grupy, należy podać „WKS043$” jako wartość parametru -Member:

Add-AdGroupMember -Identity Quality -Members WKS043$

Dodawanie użytkownika do wielu grup

Aby dodać użytkownika do wielu grup jednocześnie, należy uruchomić następujący skrypt.

"Managers","Quality" | Add-ADGroupMember -Members ` (Read-Host -Prompt "Enter User Name")

Zostaniesz poproszony o wprowadzenie nazwy użytkownika.

Dodawanie użytkowników do grupy z pliku CSV

Jeśli chcesz dodać dużą liczbę użytkowników do grupy, możesz określić ich w pliku CSV, a następnie zaimportować ten plik. Należy pamiętać, że lista nazw użytkowników w pliku CSV musi zawierać nazwy SamAccountNames w kolumnie „users”, jak pokazano poniżej:

Aby dodać użytkowników do grupy z pliku CSV, należy uruchomić następujący skrypt PowerShell:

Import-CSV C:\scripts\users.csv -Header users | ForEach-Object {Add-AdGroupMember -Identity "Quality" -members $_.users}

Kopiowanie użytkowników z jednej grupy do innej

Jeśli chcesz skopiować wszystkich członków z jednej grupy do innej grupy, uruchom następujący skrypt:

Get-ADGroupMember "Quality" | Get-ADUser | ForEach-Object {Add-ADGroupMember -Identity "QualityControl" -Members $_}

Usuwanie użytkowników lub komputerów z grupy

Aby usunąć użytkownika z grupy, użyj polecenia cmdlet Remove-ADGroupMember:

Remove-ADGroupMember -Identity Quality -Members J.Robinson

Aby usunąć konto komputera z grupy, podaj nazwę komputera ze znakiem dolara ($) na końcu jako wartość parametru -Members.

Usuwanie wielu kont użytkowników z grupy

Łatwym sposobem na usunięcie wielu użytkowników z grupy AD jest utworzenie pliku CSV z listą nazw użytkowników, a następnie usunięcie tych użytkowników z obiektu grupy za pomocą tego skryptu:

Import-CSV C:\scripts\users.csv -Header users | ForEach-Object {Remove-ADGroupMember -Identity "Quality" -members $_.users}

Usuwanie użytkownika ze wszystkich grup

Aby usunąć użytkownika ze wszystkich grup, uruchom ten skrypt:

Get-ADUser -Identity E.Franklin -Properties MemberOf | ForEach-Object { $_.MemberOf | Remove-ADGroupMember -Members $_.DistinguishedName -Confirm:$false}

Zauważ, że użytkownik straci wszystkie członkostwa w grupach z wyjątkiem „Użytkowników domeny”, które można usunąć ręcznie w razie potrzeby.

Raportowanie o grupach Active Directory

Teraz, gdy wiemy, jak wykonać wiele typowych zadań zarządzania Active Directory związanych z grupami za pomocą PowerShell, zobaczmy, jak raportować, jakie grupy istnieją w AD:

Aby wyświetlić listę wszystkich grup w AD, użyj poniższego skryptu:

Get-ADGroup -filter * -properties GroupCategory | ft name,groupcategory

Oczywiście, będziesz chciał również przejrzeć członków grup AD i zmiany w członkostwie grup AD. Poniżej znajdują się łącza do instrukcji dotyczących wykonywania tych bardziej złożonych zadań:

  • How to Monitor Active Directory Group Membership Changes
  • How to Get AD User Group Membership Reports
  • How to Export Members of a Particular AD Group
  • Managing OUs and Moving Their Objects with PowerShell

Conclusion

Teraz, gdy już dowiedziałeś się, jak zarządzać grupami i członkostwem grup w Active Directory za pomocą skryptów PowerShell, spróbuj wykonać część zadań związanych z zarządzaniem grupami samodzielnie. Należy jednak zachować ostrożność i nie zapomnieć o włączeniu funkcji kosza Active Directory Recycle Bin, aby móc łatwo cofnąć wprowadzone zmiany, jeśli coś pójdzie nie tak. Pamiętaj, że ADUC MMC snap-in jest świetny do zarządzania grupami i członkostwem w grupach, ale PowerShell jest znacznie lepszy do masowego zarządzania grupami.

Jeff jest dyrektorem ds. inżynierii rozwiązań globalnych w firmie Netwrix. Jest długoletnim blogerem, mówcą i prezenterem firmy Netwrix. Na blogu Netwrix, Jeff dzieli się lifehackami, wskazówkami i sztuczkami, które mogą radykalnie poprawić Twoje doświadczenie w administrowaniu systemem.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.