Dynamiczne grupy użytkowników Active Directory z PowerShell

Podczas zarządzania dostępem i ustawieniami użytkownika w domenie Active Directory administrator może mieć zadanie utworzenia dynamiczne grupy użytkowników AD. Taka dynamiczna grupa powinna automatycznie dołączać lub wykluczać użytkowników z grupy, w zależności od ustawień konta użytkownika w domenie. Na przykład chcesz automatycznie dodawać użytkowników z określonej jednostki organizacyjnej do grupy lub utworzyć grupę użytkowników, która zawiera wszystkie konta określonego działu (pole Dział) itp. Grupy dynamiczne pozwalają administratorowi uprościć proces przypisywania uprawnień do serwerów plików, stacji roboczych itp..

Usługa Active Directory nie ma wbudowanych funkcji dla dynamicznych grup zabezpieczeń. Można jednak utworzyć skrypt PowerShell, który automatycznie wybiera użytkowników z Active Directory zgodnie z określonym kryterium i dodaje użytkowników do określonej grupy zabezpieczeń AD (można tymczasowo) i usuwa konta z grupy, które nie podlegają już warunkom tworzenia grupy.

Podczas zmiany atrybutów użytkownika w AD skrypt powinien automatycznie dodawać lub wykluczać użytkownika z grupy.

Aby korzystać z takich dynamicznych grup użytkowników, musisz zachować wszystkie pola używane w kryteriach wyboru tak istotne, jak to możliwe dla wszystkich kont (na przykład, podczas tworzenia nowych użytkowników za pomocą skryptu PowerShell, musisz natychmiast określić miasto, dział, organizację itp.).

  • W Exchange Server istnieją dynamiczne grupy dystrybucyjne (Exchange Dynamic Distribution List), które są tworzone automatycznie na podstawie kryteriów użytkownika, na przykład wartości w polu „firma” (firma w AD), jednostka organizacyjna, w której znajduje się użytkownik, pola miasto, serwer Exchange, na którym pole lub dowolny inny atrybut użytkownika w usłudze Active Directory. Ale dynamicznych grup dystrybucji można używać tylko do tworzenia grup dystrybucji, ale nie grup zabezpieczeń;
  • W usłudze Azure AD są wbudowane grupy dynamiczne. W tym katalogu możesz tworzyć różne dynamiczne reguły członkostwa dla grup i grup zabezpieczeń Office 365;
  • Częściowo zdolność grup dynamicznych do zapewnienia dostępu można zastąpić funkcją dynamicznej kontroli dostępu (DAC) w systemie Windows Server 2012 i nowszych;

Załóżmy, że musisz automatycznie dodać wszystkich użytkowników z wielu jednostek organizacyjnych, których pole „Dział” w AD mówi „Dział sprzedaży„ Napisałem taki skrypt PowerShell (do jego działania wymagany jest moduł Active Directory dla Windows PowerShell, cmdlet Get-ADUser służy do uzyskiwania informacji o użytkownikach i cmdletach do zarządzania grupami AD - Add-ADGroupMember, Get-ADGroupMember i Remove-ADGroupMember).

## Twoja nazwa domeny AD
$ ADDomain = 'dc = winitpro, dc = ru'
## Nazwa grupy dynamicznej
$ ADGroupname = 'mskSales'
Lista ## OU do wyszukiwania użytkowników
$ ADOUs = @ (
„OU = Użytkownicy, OU = Konta, OU = SPB, $ ADDomain”,
„OU = Użytkownicy, OU = Konta, OU = MSK, $ ADDomain”
)
$ users = @ ()
# Wyszukaj użytkowników według określonej jednostki organizacyjnej
foreach ($ OU w $ ADOUs)
$ users + = Get-ADUser -SearchBase $ OU -Filter Dział sprzedaży podobny do działu

foreach ($ użytkownik w $ użytkownicy)

Dodaj ADGroupMember -Identity $ ADGroupname -Member $ user.samaccountname -ErrorAction SilentlyContinue

## Teraz sprawdzimy wszystkich użytkowników grupy pod kątem zgodności z kryteriami wyboru, a jeśli użytkownik nie spełni (przeniesiony do innej jednostki organizacyjnej, zmieniono dział), wykluczymy go z grupy
$ Members = Get-ADGroupMember -Identity $ ADGroupname
foreach ($ członek w $ członkowie)

if ($ member.distinguishedname - notlike "* OU = Users, OU = Accounts, OU = SPB, $ ADDomain *" -and $ member.distinguishedname-notlike "* OU = Users, OU = Accounts, OU = MSK, $ ADDomain * ”)

Remove-ADGroupMember -Identity $ ADGroupname -Member $ member.samaccountname -Confirm: $ false

if ((Get-ADUser -identity $ member -properties Department | Select-Object Department) .department - niepodobny do „Sales Department”)

Remove-ADGroupMember -Identity $ ADGroupname -Member $ member.samaccountname -Confirm: $ false



Uruchom skrypt i sprawdź, czy w rezultacie wszyscy użytkownicy danych OU, dla których w polu Dział podano „Dział sprzedaży”, są automatycznie dodawani do grupy mskSales. Wszyscy użytkownicy, którzy nie spełniają tych kryteriów, są wykluczeni z tej grupy..

Ten skrypt należy uruchomić ręcznie, ale lepiej jest uruchamiać go regularnie za pomocą osobnego zadania Harmonogramu zadań, w imieniu konta, które ma uprawnienia w usłudze AD dla użytkowników i grup (nie uruchamiaj skryptu z poziomu administratora domeny, możesz przekazać wszystkie niezbędne uprawnienia zwykłemu konto usługi lub konto gmsa).

Ten skrypt PowerShell może być używany jako struktura do tworzenia własnych reguł tworzenia grup dynamicznych w AD.