Služba Microsoft Active Directory slouží jako centralizovaný bod pro správu, autorizaci a ověřování. V systému AD se přístup k síťovým prostředkům uděluje bezpečnostním principům, jako jsou uživatelské účty a účty počítačů, a tato oprávnění se mohou v průběhu času měnit. Pro zjednodušení správy přístupu a zvýšení zabezpečení používají střední a velké společnosti často bezpečnostní skupiny služby Active Directory, které mohou obsahovat uživatelské účty, počítačové účty a další skupiny. Často také používají distribuční skupiny pro správu e-mailových distribučních seznamů. Jak skupiny zabezpečení, tak distribuční skupiny mají jedinečné identifikátory zabezpečení (SID) a globálně jedinečné identifikátory (GUID).
Snap-in ADUC MMC je skvělý pro správu obou typů skupin, ale prostředí PowerShell představuje mnohem efektivnější způsob jejich hromadné správy.
Pokud ještě nejste obeznámeni se skupinami AD a jejich správou, přečtěte si před dalším postupem příručku Active Directory Group Management Best Practice.
Mějte také na paměti, že pro použití těchto skriptů PowerShell je nutné importovat modul pro interakci se službou AD – Active Directory Module for Microsoft Windows PowerShell. Tento modul byl zaveden v systému Windows Server 2008 R2 a ve výchozím nastavení je povolen v systému Windows Server 2012 a novějších. Úplný seznam rutin modulu AD získáte spuštěním následujícího příkazu:
Get-Command -Module ActiveDirectory
Úplný seznam obsahuje 147 rutin; pouze těchto jedenáct se však týká skupin služby Active Directory:
- Add-ADGroupMember
- Add-ADPrincipalGroupMembership
- Get-ADAccountAuthorizationGroup
- Get-ADGroup
- Get-ADGroupMember
- Get-ADPrincipalGroupMembership
- New-ADGroup
- Remove-ADGroup
- Remove-ADGroupMember
- Remove-ADPrincipalGroupMembership
- Set-ADGroup
Vytvoření skupiny Active Directory pomocí PowerShellu
Pro vytvoření skupiny AD, použijte rutinu New-ADGroup. Jeho syntaxi získáte spuštěním následujícího příkazu:
Get-Command New-ADGroup –Syntax
Nejjednodušší způsob vytvoření skupiny je spuštění tohoto krátkého skriptu:
New-ADGroup "Group Name"
Systém vás požádá o zadání parametru „GroupScope“ a poté vytvoří novou skupinu. Tato skupina však bude mít výchozí hodnoty, například:
- Bude vytvořena ve výchozím kontejneru LDAP s názvem „Users“.
- Bude mít typ skupiny „Security“.
- Pole members, member of, description, email a notes budou prázdná.
Představme si, že chceme vytvořit skupinu zabezpečení s názvem „Quality“ v našem DC AD. Použijme následující parametry:
New-ADGroup "Quality" -Path "OU=Production,DC=enterprise,dc=com" -GroupCategory Security -GroupScope Global -PassThru –Verbose
Pokud chcete vytvořit univerzální distribuční skupinu, stačí změnit parametr -GroupCategory na „Distribution“ a parametr -GroupScope na „Universal“. Můžete také změnit cestu LDAP změnou parametru -Path.
Odstranění skupiny Active Directory pomocí prostředí PowerShell
Pro odstranění skupiny AD použijte rutinu Remove-ADGroup. Nejjednodušší skript pro tento účel bude vypadat takto:
Remove-ADGroup -Identity Quality
Budete vyzváni k potvrzení odstranění skupiny.
Přidání uživatelů a počítačů do skupiny pomocí prostředí PowerShell
Pomocí rutiny Add-AdGroupMember můžete přidat uživatele do skupiny AD. Pokud byste například potřebovali přidat dva uživatele, B.Jacksona a E.Franklin, do skupiny „Quality“, bude skript vypadat takto:
Add-AdGroupMember -Identity Quality -Members B.Jackson, E.Franklin
Po přidání uživatelů do bezpečnostní skupiny můžete spustit níže uvedený skript a ověřit, zda jsou uvedeni jako členové:
Get-ADGroupMember -Identity Quality
Pokud potřebujete přidat uživatele do jiné bezpečnostní nebo distribuční skupiny, například „Domain Admins“, zadejte jako hodnotu parametru -Identity „Domain Admins“. Pokud potřebujete, aby jedna skupina byla členem jiné skupiny, zadejte název skupiny jako hodnotu parametru -Members. Stejný princip platí i pro počítačové účty, ale na konec názvu počítačového účtu je třeba připojit znak dolaru ($). Chcete-li například přidat počítač „WKS043“ do skupiny, zadejte jako hodnotu parametru -Members hodnotu „WKS043$“:
Add-AdGroupMember -Identity Quality -Members WKS043$
Přidání uživatele do více skupin
Chcete-li přidat uživatele do více skupin najednou, spusťte následující skript.
"Managers","Quality" | Add-ADGroupMember -Members ` (Read-Host -Prompt "Enter User Name")
Budete vyzváni k zadání uživatelského jména.
Přidání uživatelů do skupiny ze souboru CSV
Pokud chcete do skupiny přidat velký počet uživatelů, můžete je zadat v souboru CSV a poté tento soubor importovat. Všimněte si, že seznam uživatelských jmen v souboru CSV musí obsahovat SamAccountNames ve sloupci „users“, jak je uvedeno níže:
Chcete-li přidat uživatele do skupiny ze souboru CSV, spusťte následující skript prostředí PowerShell:
Import-CSV C:\scripts\users.csv -Header users | ForEach-Object {Add-AdGroupMember -Identity "Quality" -members $_.users}
Kopírování uživatelů z jedné skupiny do jiné
Pokud chcete zkopírovat všechny členy z jedné skupiny do jiné skupiny, spusťte následující skript:
Get-ADGroupMember "Quality" | Get-ADUser | ForEach-Object {Add-ADGroupMember -Identity "QualityControl" -Members $_}
Odstranění uživatelů nebo počítačů ze skupiny
Chcete-li odebrat uživatele ze skupiny, použijte rutinu Remove-ADGroupMember:
Remove-ADGroupMember -Identity Quality -Members J.Robinson
Chcete-li odebrat účet počítače ze skupiny, zadejte název počítače se znakem dolaru ($) na konci jako hodnotu parametru -Members.
Odstranění více uživatelských účtů ze skupiny
Snadným způsobem, jak odstranit více uživatelů ze skupiny AD, je vytvořit soubor CSV se seznamem uživatelských jmen a poté tyto uživatele odstranit z objektu skupiny pomocí tohoto skriptu:
Import-CSV C:\scripts\users.csv -Header users | ForEach-Object {Remove-ADGroupMember -Identity "Quality" -members $_.users}
Odstranění uživatele ze všech skupin
Chcete-li odebrat uživatele ze všech skupin, spusťte tento skript:
Get-ADUser -Identity E.Franklin -Properties MemberOf | ForEach-Object { $_.MemberOf | Remove-ADGroupMember -Members $_.DistinguishedName -Confirm:$false}
Všimněte si, že uživatel ztratí členství ve všech skupinách kromě „Domain Users“, které lze v případě potřeby odebrat ručně.
Hlášení o skupinách služby Active Directory
Když už víme, jak provádět mnoho běžných úloh správy služby Active Directory souvisejících se skupinami pomocí prostředí PowerShell, podívejme se, jak nahlásit, jaké skupiny ve službě AD existují:
Chcete-li vypsat všechny skupiny ve službě AD, použijte následující skript:
Get-ADGroup -filter * -properties GroupCategory | ft name,groupcategory
Samozřejmě budete chtít také zkontrolovat členy skupin AD a změny členství ve skupinách AD. Zde jsou odkazy na pokyny k provádění těchto složitějších úkolů:
- Jak sledovat změny členství ve skupinách služby Active Directory
- Jak získat přehledy o členství uživatelů ve skupinách služby AD
- Jak exportovat členy určité skupiny služby AD
- Správa organizačních jednotek a přesun jejich objektů pomocí prostředí PowerShell
Závěr
Nyní jste se naučili spravovat skupiny a členství ve skupinách ve službě Active Directory pomocí skriptů prostředí PowerShell, zkuste provést některé úlohy správy skupin sami. Buďte však opatrní a nezapomeňte povolit funkci koše služby Active Directory, abyste mohli snadno vrátit změny zpět, pokud se něco pokazí. Nezapomeňte, že modul snap-in ADUC MMC je skvělý pro správu skupin a členství ve skupinách, ale prostředí PowerShell je mnohem lepší pro hromadnou správu skupin.