A Microsoft Active Directory az adminisztráció, az engedélyezés és a hitelesítés központi pontjaként szolgál. Az AD-ben a hálózati erőforrásokhoz való hozzáférést a biztonsági megbízók, például felhasználói fiókok és számítógépfiókok kapják, és ezek a jogosultságok idővel változhatnak. A hozzáférés kezelésének egyszerűsítése és a biztonság javítása érdekében a közepes és nagyvállalatok gyakran használnak Active Directory biztonsági csoportokat, amelyek felhasználói fiókokat, számítógépfiókokat és egyéb csoportokat tartalmazhatnak. Gyakran használnak terjesztési csoportokat is az e-mail terjesztési listák kezelésére. Mind a biztonsági, mind a terjesztési csoportok egyedi biztonsági azonosítókkal (SID) és globálisan egyedi azonosítókkal (GUID) rendelkeznek.
Az ADUC MMC beépülő modul mindkét csoporttípus kezelésére kiválóan alkalmas, de a PowerShell sokkal hatékonyabb módja a csoportok tömeges kezelésének.
Ha még nem ismeri az AD-csoportokat és a csoportkezelést, kérjük, olvassa el az Active Directory csoportkezelés legjobb gyakorlata című útmutatót, mielőtt továbblépne.
Még ne feledje, hogy a PowerShell szkriptek használatához importálnia kell az AD-vel való interakcióhoz szükséges modult – az Active Directory Module for Microsoft Windows PowerShell modult. Ezt a modult a Windows Server 2008 R2-ben vezették be, és a Windows Server 2012 és újabb verziókban alapértelmezés szerint engedélyezve van. Az AD-modul cmdletjeinek teljes listáját a következő parancs futtatásával kaphatja meg:
Get-Command -Module ActiveDirectory
A teljes lista 147 cmdletet tartalmaz; azonban csak ez a tizenegy kapcsolódik az Active Directory-csoportokhoz:
- Add-ADGroupMember
- Add-ADPrincipalGroupMembership
- Get-ADAccountAuthorizationGroup
- Get-ADGroup
- Get-ADGroupMember
- Get-ADPrincipalGroupMembership
- New-ADGroup
- Remove-ADGroup
- Remove-ADGroupMember
- Remove-ADPrincipalGroupMembership
- Set-ADGroup
Az Active Directory csoport létrehozása PowerShell segítségével
Az AD csoport létrehozása, a New-ADGroup cmdletet használja. Szintaxisát a következő parancs futtatásával kaphatjuk meg:
Get-Command New-ADGroup –Syntax
A csoport létrehozásának legegyszerűbb módja a következő rövid szkript futtatása:
New-ADGroup "Group Name"
A rendszer megkéri a “GroupScope” paraméter megadására, majd létrehoz egy új csoportot. Ez a csoport azonban alapértelmezett értékekkel fog rendelkezni, például:
- A “Users” nevű alapértelmezett LDAP tárolóban lesz létrehozva.
- A csoport típusa “Security” lesz.
- A members, member of, description, email és notes mezők mind üresek lesznek.
Tegyük fel, hogy egy “Quality” nevű biztonsági csoportot szeretnénk létrehozni az AD DC-nkben. Használjuk a következő paramétereket: Legyen a “Production” OU-ban (-Path), legyen biztonsági csoport (-GroupCategory), és legyen globális (-GroupScope).
New-ADGroup "Quality" -Path "OU=Production,DC=enterprise,dc=com" -GroupCategory Security -GroupScope Global -PassThru –Verbose
Ha univerzális elosztási csoportot szeretnénk létrehozni, egyszerűen módosítsuk a -GroupCategory paramétert “Distribution”-re, a -GroupScope paramétert pedig “Universal”-ra. Az LDAP-útvonalat is megváltoztathatja a -Path paraméter módosításával.
Az Active Directory-csoport törlése a PowerShell segítségével
Az AD-csoport törléséhez használja a Remove-ADGroup cmdletet. A legegyszerűbb szkript ehhez így néz ki:
Remove-ADGroup -Identity Quality
A csoport törlésének megerősítését kéri a rendszer.
Felhasználók és számítógépek hozzáadása egy csoporthoz a PowerShell segítségével
Az Add-AdGroupMember cmdlet segítségével adhatunk hozzá felhasználókat egy AD-csoporthoz. Ha például két felhasználót, B.Jackson és E.Franklin, a “Quality” csoporthoz, a szkript így nézne ki:
Add-AdGroupMember -Identity Quality -Members B.Jackson, E.Franklin
Ha már hozzáadott felhasználókat egy biztonsági csoporthoz, az alábbi szkriptet futtatva ellenőrizheti, hogy a felhasználók tagként szerepelnek-e a listán:
Get-ADGroupMember -Identity Quality
Ha a felhasználókat egy másik biztonsági vagy elosztási csoporthoz, például a “Domain Admins” csoporthoz kell hozzáadni, adja meg a “Domain Admins” értéket a -Identity paraméterhez. Ha egy csoportnak egy másik csoport tagjának kell lennie, adja meg a -Members paraméter értékeként a csoport nevét. Ugyanez az elv vonatkozik a számítógépfiókokra is, de a számítógépfiók nevének végére egy dollárjelet ($) kell illesztenie. Ha például a “WKS043” számítógépet szeretné felvenni egy csoportba, adja meg a -Members paraméter értékeként a “WKS043$” szót:
Add-AdGroupMember -Identity Quality -Members WKS043$
Felhasználó felvétele több csoportba
A felhasználó egyszerre több csoportba történő felvételéhez futtassa a következő parancsfájlt.
"Managers","Quality" | Add-ADGroupMember -Members ` (Read-Host -Prompt "Enter User Name")
A program felszólítja a felhasználónév megadására.
Felhasználók hozzáadása egy csoporthoz CSV-fájlból
Ha nagyszámú felhasználót szeretne hozzáadni egy csoporthoz, megadhatja őket egy CSV-fájlban, majd importálhatja ezt a fájlt. Ne feledje, hogy a CSV-fájlban szereplő felhasználónevek listájának tartalmaznia kell a SamAccountNeveket a “users” oszlopban, az alábbiak szerint:
A CSV-fájlból történő felhasználók csoporthoz való hozzáadásához futtassa a következő PowerShell szkriptet:
Import-CSV C:\scripts\users.csv -Header users | ForEach-Object {Add-AdGroupMember -Identity "Quality" -members $_.users}
Felhasználók másolása egyik csoportból egy másikba
Ha az összes tagot át akarja másolni egy csoportból egy másik csoportba, futtassa a következő szkriptet:
Get-ADGroupMember "Quality" | Get-ADUser | ForEach-Object {Add-ADGroupMember -Identity "QualityControl" -Members $_}
Felhasználók vagy számítógépek eltávolítása egy csoportból
Használók vagy számítógépek eltávolításához egy csoportból a Remove-ADGroupMember cmdlet használatával:
Remove-ADGroupMember -Identity Quality -Members J.Robinson
A számítógépfiók eltávolításához egy csoportból a -Members paraméter értékeként adja meg a számítógép nevét dollárjellel ($) a végén.
Másik felhasználói fiók eltávolítása egy csoportból
A több felhasználó eltávolításának egyszerű módja egy AD-csoportból az, hogy létrehoz egy CSV-fájlt a felhasználónevek listájával, majd ezzel a szkripttel eltávolítja ezeket a felhasználókat a csoportobjektumból:
Import-CSV C:\scripts\users.csv -Header users | ForEach-Object {Remove-ADGroupMember -Identity "Quality" -members $_.users}
Felhasználó eltávolítása az összes csoportból
A felhasználónak az összes csoportból való eltávolításához futtassa ezt a szkriptet:
Get-ADUser -Identity E.Franklin -Properties MemberOf | ForEach-Object { $_.MemberOf | Remove-ADGroupMember -Members $_.DistinguishedName -Confirm:$false}
Figyeljen arra, hogy a felhasználó elveszíti az összes csoporttagságát, kivéve a “Domain Users” csoportot, amelyet szükség esetén manuálisan is eltávolíthat.
Az Active Directory-csoportok jelentése
Most, hogy tudjuk, hogyan lehet a PowerShell segítségével számos gyakori Active Directory-kezelési feladatot elvégezni a csoportokkal kapcsolatban, nézzük meg, hogyan lehet jelentést készíteni arról, hogy milyen csoportok léteznek az AD-ben:
Az AD-ben lévő összes csoport listázásához használjuk az alábbi szkriptet:
Get-ADGroup -filter * -properties GroupCategory | ft name,groupcategory
Az AD-csoporttagok és az AD-csoporttagság változásainak áttekintésére természetesen szintén szükségünk lesz. Itt találja az ezen összetettebb feladatok elvégzéséhez szükséges utasítások linkjeit:
- Hogyan követhetjük nyomon az Active Directory csoporttagsági változásokat
- Hogyan kaphatunk AD felhasználói csoporttagsági jelentéseket
- Hogyan exportálhatjuk egy adott AD csoport tagjait
- OU-k kezelése és objektumaik áthelyezése a PowerShell segítségével
Következtetés
Most már megtanulta, hogyan kezelhet csoportokat és csoporttagságot az Active Directoryban a PowerShell parancsfájlok segítségével, próbáljon meg néhány csoportkezelési feladatot saját maga elvégezni. Legyen azonban óvatos, és ne felejtse el engedélyezni az Active Directory újrahasznosító kuka funkcióját, hogy könnyen visszaállíthassa a módosításokat, ha valami rosszul sülne el. Ne feledje, az ADUC MMC beépülő modul nagyszerű a csoportok és a csoporttagság kezelésére, de a PowerShell sokkal jobb a csoportok tömeges kezelésére.