Dynamické skupiny používateľov služby Active Directory s technológiou PowerShell

Pri správe prístupu a užívateľských nastavení v doméne služby Active Directory môže mať správca úlohu vytvoriť dynamické skupiny používateľov AD. Takáto dynamická skupina by mala automaticky zahŕňať alebo vylúčiť používateľov zo skupiny v závislosti od nastavení používateľského účtu v doméne. Napríklad chcete automaticky pridať používateľov z konkrétneho OU do skupiny alebo vytvoriť skupinu používateľov, ktorá obsahuje všetky účty určitého oddelenia (pole Department) atď. Dynamické skupiny umožňujú správcovi zjednodušiť proces prideľovania povolení súborovým serverom, pracovným staniciam atď..

Služba Active Directory nemá zabudované funkcie pre dynamické skupiny zabezpečenia. Môžete si však vytvoriť skript PowerShell, ktorý automaticky vyberie používateľov zo služby Active Directory podľa určitého kritéria a pridá používateľov do konkrétnej skupiny zabezpečenia AD (môžete dočasne) a odstráni účty zo skupiny, ktoré už nespĺňajú podmienky na vytvorenie skupiny..

Pri zmene atribútov používateľa v AD by skript mal automaticky pridať alebo vylúčiť používateľa zo skupiny.

Ak chcete používať takéto dynamické skupiny používateľov, musíte ponechať všetky polia použité vo výberových kritériách čo najrelevantnejšie pre všetky účty (napríklad pri vytváraní nových používateľov pomocou skriptu PowerShell musíte okamžite určiť mesto, oddelenie, organizáciu atď.).

  • Na serveri Exchange Server existujú dynamické distribučné skupiny (Exchange Dynamic Distribution List), ktoré sa vytvárajú automaticky na základe užívateľských kritérií, napríklad hodnôt v poli „company“ (company in AD), OU, kde sa používateľ nachádza, polia City, Exchange server, na ktorých alebo akýkoľvek iný atribút používateľa v službe Active Directory. Dynamické distribučné skupiny sa však môžu použiť iba na vytváranie distribučných skupín, nie však bezpečnostných skupín;
  • V Azure AD sú zabudované dynamické skupiny. V tomto adresári môžete vytvoriť rôzne dynamické pravidlá členstva pre skupiny zabezpečenia a skupiny Office 365;
  • Schopnosť dynamických skupín poskytovať prístup môže byť čiastočne nahradená funkciou Dynamic Access Control (DAC) v systéme Windows Server 2012 a novšom;

Predpokladajme, že musíte automaticky pridať všetkých používateľov z viacerých organizačných jednotiek, ktorých pole „Oddelenie“ v AD uvádza „Obchodné oddelenie". Napísal som taký skript PowerShell (pre jeho fungovanie je potrebný modul Active Directory pre Windows PowerShell, rutina Get-ADUser sa používa na získanie informácií o užívateľoch a rutinách správy skupín AD - Add-ADGroupMember, Get-ADGroupMember a Remove-ADGroupMember).

## Vaše AD doménové meno
$ ADDomain = 'dc = winitpro, dc = ru'
## Dynamický názov skupiny
$ ADGroupname = 'mskSales'
Zoznam ## OU pre vyhľadávanie používateľov
$ ADOUs = @ (
"OU = Používatelia, OU = Účty, OU = SPB, $ ADDomain",
"OU = Používatelia, OU = Účty, OU = MSK, $ ADDomain"
)
$ users = @ ()
# Vyhľadávať používateľov podľa zadaného OU
foreach ($ OU v $ ADOU)
$ users + = Get-ADUser -SearchBase $ OU -Filter Department-like Sales Department

foreach ($ user in $ users)

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

## Teraz skontrolujeme, či všetci používatelia skupiny spĺňajú výberové kritériá, a ak používateľ nespĺňa požiadavky (prevedené na iný OU, oddelenie sa zmenilo), vylúčime ho zo skupiny
$ members = Get-ADGroupMember -Identity $ ADGroupname
foreach ($ member in $ members)

ak ($ ​​member.distinguishedname - notlike "* OU = Users, OU = Accounts, OU = SPB, $ ADDomain *" - a $ member.distinguishedname - notlike "* OU = Users, OU = Accounts, OU = MSK, $ ADDomain * “)

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

if ((Get-ADUser -identity $ member-Department of Department | Select-Object Department) .department-notlike "Sales Department")

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



Spustite skript a overte, že v dôsledku toho sa do skupiny mskSales automaticky pridajú všetci používatelia údajov OU, pre ktoré je v poli Department zadané „Sales department“. Z tejto skupiny sú vylúčení všetci používatelia, ktorí nespĺňajú tieto kritériá..

Tento skript je potrebné spustiť manuálne, ale je lepšie ho pravidelne spúšťať prostredníctvom samostatnej úlohy plánovača úloh v mene účtu, ktorý má práva v službe AD pre používateľov a skupiny (skript nespúšťajte pod správcom domény, všetky potrebné práva môžete delegovať na obvyklé účet služby alebo účet gmsa).

Tento skript PowerShell sa dá použiť ako rámec na vytvorenie vlastných pravidiel na vytváranie dynamických skupín v službe AD.