Dinamične skupine uporabnikov Active Directory s programom PowerShell

Pri upravljanju dostopa in uporabniških nastavitev v domeni Active Directory ima skrbnik nalogo ustvariti dinamične skupine uporabnikov AD. Takšna dinamična skupina mora samodejno vključevati ali izključevati uporabnike iz skupine, odvisno od nastavitev uporabniškega računa v domeni. Na primer, želite uporabnike iz določene OU samodejno dodati v skupino ali ustvariti uporabniško skupino, ki vključuje vse račune določenega oddelka (polje oddelka) itd. Dinamične skupine omogočajo skrbniku, da poenostavi postopek dodeljevanja dovoljenj datotečnim strežnikom, delovnim postajam itd..

Active Directory nima vgrajene funkcionalnosti za dinamične varnostne skupine. Lahko pa ustvarite skript PowerShell, ki samodejno izbere uporabnike iz aktivnega imenika po določenem kriteriju in doda uporabnike v določeno varnostno skupino AD (lahko začasno) in odstrani račune iz skupine, ki ne sodijo več pod pogoje oblikovanja skupine.

Ko spreminjate uporabniške atribute v AD-ju, bi moral skript samodejno dodati ali izključiti uporabnika iz skupine.

Če želite uporabljati takšne dinamične skupine uporabnikov, morate ohraniti vsa polja, uporabljena v izbirnih merilih, čim bolj ustrezna za vse račune (na primer pri ustvarjanju novih uporabnikov s skriptom PowerShell morate nemudoma določiti mesto, oddelek, organizacijo itd.).

  • V Exchange Server obstajajo dinamične distribucijske skupine (Exchange Dynamic Distribution List), ki se samodejno oblikujejo na podlagi uporabniških meril, na primer vrednosti v polju "company" (podjetje v AD), OU, kjer se uporabnik nahaja, City City, Exchange server, na katerem polje ali kateri koli drug uporabniški atribut v Active Directoryu. Toda dinamične distribucijske skupine se lahko uporabljajo samo za oblikovanje distribucijskih skupin, ne pa tudi varnostnih skupin;
  • V Azure AD so vgrajene dinamične skupine. V tem imeniku lahko ustvarite različna pravila dinamičnega članstva za varnostne skupine in skupine Office 365;
  • Deloma je sposobnost dinamičnih skupin, da zagotavljajo dostop, mogoče nadomestiti s funkcijo dinamičnega nadzora dostopa (DAC) v operacijskem sistemu Windows Server 2012 in novejših;

Recimo, da morate samodejno dodati vse uporabnike iz več OU, katerih polje "Oddelek" v AD-ju piše "Prodajni oddelek" Napisal sem takšen skript PowerShell (za njegovo delovanje je potreben modul Active Directory za Windows PowerShell; cmdlet Get-ADUser se uporablja za pridobivanje informacij o uporabnikih in cmdletih za upravljanje skupine AD - Add-ADGroupMember, Get-ADGroupMember in Remove-ADGroupMember).

## Vaše ime domene AD
$ ADDomain = 'dc = winitpro, dc = ru'
## Dinamično ime skupine
$ ADGroupname = 'mskSales'
## seznam OU za iskanje uporabnikov
$ ADOUs = @ (
"OU = uporabniki, OU = računi, OU = SPB, $ ADDomain",
"OU = uporabniki, OU = računi, OU = MSK, $ ADDomain"
)
$ uporabniki = @ ()
# Iščite uporabnike po določenih OU
foreach ($ OU v $ ADOUs)
$ users + = Get-ADUser -SearchBase $ OU -Filter Oddelek za prodajo-podoben

foreach ($ uporabnik v $ uporabnikih)

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

## Zdaj bomo vse uporabnike skupine preverili glede skladnosti z izbirnimi merili in ga, če uporabnik ne izpolnjuje (premeščen v drug OU, oddelek spremenjen), izključil iz skupine
$ members = Get-ADGroupMember -Identity $ ADGroupname
foreach ($ member v $ members)

if ($ member.distinguishedname -notlike "* OU = Uporabniki, OU = Računi, OU = SPB, $ ADDomain *" -and $ member.distinguishedname -notlike "* OU = Uporabniki, OU = Računi, OU = MSK, $ ADDomain * ")

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

if ((Get-ADUser -identity $ member -properties Department | Oddelek za izbiro predmetov) .department -notlike "Sales Department")

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



Zaženite skript in preverite, ali so zato vsi uporabniki iz podatkov OU, za katere je v polju Oddelek določen "Oddelek za prodajo", samodejno dodani v skupino mskSales. Vsi uporabniki, ki ne izpolnjujejo teh meril, so izključeni iz te skupine..

Ta skript je treba zagnati ročno, vendar je bolje, da ga redno izvajate prek ločene naloge orodja za načrtovanje opravil, v imenu računa, ki ima AD pravice za uporabnike in skupine (skripta ne zaženite pod skrbnikom domene, vse potrebne pravice lahko prenesete na običajno račun storitve ali gmsa račun).

Ta skript PowerShell lahko uporabite kot okvir za ustvarjanje lastnih pravil za ustvarjanje dinamičnih skupin v AD-ju.