Active Directory dinamikus felhasználói csoportok a PowerShell használatával

Az Active Directory-tartomány hozzáférési és felhasználói beállításainak kezelésekor a rendszergazda feladata lehet létrehozni dinamikus felhasználói csoportok AD. Egy ilyen dinamikus csoportnak automatikusan be kell vonnia vagy ki kell zárnia a felhasználókat a csoportból, a tartomány felhasználói fiókjának beállításaitól függően. Például azt szeretné, hogy automatikusan felvegye a felhasználókat egy adott OU-ból egy csoportba, vagy hozzon létre egy felhasználói csoportot, amely magában foglalja egy adott osztály összes részlegét (Osztálymező) stb. A dinamikus csoportok lehetővé teszik a rendszergazdának, hogy egyszerűsítse a fájlkiszolgálók, munkaállomások stb. Engedélyezési folyamatát..

Az Active Directory nem rendelkezik beépített funkcióval a dinamikus biztonsági csoportok számára. Hozhat létre egy PowerShell-parancsfájlt, amely automatikusan kiválasztja a felhasználókat az Active Directory-ból egy adott kritérium alapján, és hozzáadja a felhasználókat egy adott AD-biztonsági csoporthoz (ideiglenesen is), és eltávolíthatja a csoportból azokat a fiókokat, amelyek már nem tartoznak a csoportképzés feltételei közé..

Amikor a felhasználói attribútumokat megváltoztatja az AD-ben, a szkriptnek automatikusan hozzá kell adnia vagy ki kell zárnia a felhasználót a csoportból.

Az ilyen dinamikus felhasználói csoportok használatához a kiválasztási kritériumokban használt összes mezőt a lehető leginkább relevánsnak kell tartania az összes fiókhoz (például amikor új felhasználókat hoz létre a PowerShell parancsfájl segítségével, azonnal meg kell határoznia a várost, az osztályt, a szervezetet stb.).

  • Az Exchange Server rendszerben vannak dinamikus terjesztési csoportok (Exchange Dynamic Distribution List), amelyek automatikusan alakulnak ki a felhasználói kritériumok alapján, például a "társaság" mezőben (az AD társaságban szereplő értékek), az OU-ban, ahol a felhasználó található, a városi mezőkben, az Exchange kiszolgálón, amelyen mező vagy bármely más felhasználói attribútum az Active Directory-ban. A dinamikus terjesztési csoportok azonban csak terjesztési csoportok létrehozására használhatók, biztonsági csoportok nem;
  • Beépített dinamikus csoportok vannak az Azure AD-ben. Ebben a könyvtárban különféle dinamikus tagsági szabályokat hozhat létre az Office 365 biztonsági csoportokhoz és csoportokhoz;
  • Részben a dinamikus csoportok hozzáférés biztosítására való képességét a Windows Server 2012 vagy újabb verziójának dinamikus hozzáférés-vezérlés (DAC) funkciója válthatja fel;

Tegyük fel, hogy automatikusan hozzáadnia kell az összes olyan felhasználói egységet, amelyek több OU-ból származnak, akiknek az AD „Department” mezője „Értékesítési részleg”. Írtam egy ilyen PowerShell szkriptet (működéséhez szükséges a Windows PowerShell Active Directory modulja, a Get-ADUser parancsmag segítségével információkat szerezhetünk a felhasználókról és az AD csoportkezelő parancsmagokról - Add-ADGroupMember, Get-ADGroupMember és Remove-ADGroupMember)..

## AD domain név
$ ADDomain = 'dc = winitpro, dc = ru'
## Dinamikus csoport neve
$ ADGroupname = 'mskSales'
## OU lista a felhasználói kereséshez
$ ADOUs = @ (
"OU = Felhasználók, OU = Fiókok, OU = SPB, $ ADD domain",
"OU = Felhasználók, OU = Fiókok, OU = MSK, $ ADD domain"
)
$ felhasználó = @ ()
# Felhasználók keresése a megadott OU alapján
foreach (USD OU USD ADOU-ban)
$ felhasználók + = Get-ADUser -SearchBase $ OU -Filter Osztályszerű értékesítési osztály

foreach ($ felhasználó $ felhasználóban)

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

## Most ellenőrizni fogjuk a csoport összes felhasználóját, hogy megfelel-e a kiválasztási kritériumoknak, és ha a felhasználó nem felel meg (áthelyezzük egy másik OU-ba, osztály megváltozott), kizárjuk őt a csoportból
$ tagság = Get-ADGroupMember -Identity $ ADGroupname
foreach ($ tag $ tagokban)

if ($ tag.distinguishedname - nem hasonlít "* 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 $ tag -tulajdon részleg | Kiválasztás-objektum osztály) .departament - nem hasonlít a "Értékesítési részleg")

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



Futtassa a szkriptet, és ellenőrizze, hogy ennek eredményeként az OU-adatokból az összes olyan felhasználót, amelynek az „Értékesítési részleg” az Osztály mezőben van megadva, automatikusan hozzáadják az mskSales csoporthoz. Azokat a felhasználókat, akik nem felelnek meg ezeknek a kritériumoknak, kizárjuk ebből a csoportból..

Ezt a szkriptet manuálisan kell futtatni, de jobb, ha rendszeresen futtatja azt a Feladatütemező külön feladatán keresztül, egy olyan fiók nevében, amelynek felhasználói joga van az AD-hez a felhasználók és csoportok számára (ne futtassa a szkriptet a tartományi rendszergazda alól, az összes szükséges jogot átruházhatja a szokásosra szolgáltatási vagy gmsa fiók).

Ez a PowerShell szkript felhasználható keretként a dinamikus csoportok AD-ban történő létrehozására vonatkozó saját szabályainak létrehozásához.