Het handmatig aanmaken van nieuwe organisatie-eenheden (OU’s) in Active Directory kan een behoorlijke klus zijn. Vooral bij het opzetten van een filiaal of het uitrollen van nieuwe structuren in verschillende regio’s. Het is gemakkelijk om machtigingen te vergeten, geneste containers over het hoofd te zien of gewoon enorm veel tijd te verspillen met klikken in ADUC (Active Directory Gebruikers en Computers).
Een snelle manier om dit af te handelen is via PowerShell. Het is misschien een beetje vreemd, maar scripts kunnen uren besparen en zijn veel consistenter – als je het eenmaal onder de knie hebt. Je kunt direct complete OU-hiërarchieën opzetten, beveiligingsgroepen maken en machtigingen delegeren. Bovendien kun je alle andere taken toevoegen die je waarschijnlijk toch al uitvoert, zoals het instellen van GPO’s die op die OU’s gericht zijn. Dat is wat automatisering de moeite waard maakt, toch?
Hoe automatiseer je het aanmaken van OU-structuren en machtigingen in Active Directory?
Methode 1: Basisprincipes van het aanmaken en beheren van OU’s met PowerShell
Begin met de juiste PowerShell-modules, met name de Active Directory -module. Deze is meestal afkomstig van de RSAT-tools (Remote Server Administration Tools).Als u deze nog niet hebt geïmporteerd, kunt u het volgende doen:
Import-Module ActiveDirectory
Als dat niet lukt, controleer dan op Windows 10/11 of Server of RSAT is geïnstalleerd via de optionele functies. Zodra dat is gebeurd, kunt u OU’s aanmaken met bijvoorbeeld:
New-ADOrganizationalUnit -Name "Berlin" -Path "OU=DE, DC=woshub, DC=com" -Description "Berlin branch"
Hier is -Path cruciaal — vul uw bovenliggende OU of het rootdomein in. Als u dit overslaat, wordt er alleen een OU op het hoogste niveau aangemaakt, wat mogelijk niet de bedoeling is. In sommige configuraties is die standaardinstelling prima, maar in andere gevallen moet u het exacte pad opgeven.
Pro-tip: Je kunt de huidige paden vinden door te bladeren in ADUC of door Get-ADOrganizationalUnit te gebruiken.
Methode 2: Attributen aanpassen en beschermen tegen onbedoelde verwijdering
Standaard stelt Active Directory ProtectedFromAccidentalDeletion in op $true, wat prima klinkt totdat je dingen via een script wilt verwijderen. Om dit uit te schakelen, kun je het Set-ADOrganizationalUnitals volgt doorsturen:
Get-ADOrganizationalUnit -Identity "OU=Users, OU=Berlin, OU=DE, DC=woshub, DC=com" | Set-ADOrganizationalUnit -ProtectedFromAccidentalDeletion $false
Op deze manier voorkomt u dat u later problemen ondervindt bij het verwijderen van test-OU’s. Op sommige machines moet deze opdracht als beheerder worden uitgevoerd, anders lijkt het misschien niet meteen te werken. Meestal helpt een herstart van de console of een vernieuwing van de pagina.
Methode 3: OU’s en hun objecten verwijderen
Als je organisatie-eenheden (OU’s) moet opschonen of resetten, is Remove-ADObject een handig hulpmiddel, maar wees voorzichtig: -Recursive verwijdert alles wat erin staat. Voorbeeld:
Remove-ADObject -Identity "OU=Users, OU=Berlin, OU=DE, DC=woshub, DC=com" -Recursive
Dit is handig als je structuren test of opruimt na mislukte pogingen. Controleer wel even de DN (distinguished name) voordat je de code uitvoert.
Methode 4: Bouw een typische filiaalstructuur met behulp van een script.
Stel dat uw bedrijf meerdere vestigingen heeft, elk met hetzelfde containerpatroon. U kunt een script maken om de volledige structuur te creëren, inclusief groepen en gedelegeerde machtigingen. Hier is een vereenvoudigd voorbeeld van wat dat script zou doen:
# Define variables $Country="DE" $City="HH" $CityFull="Hamburg" $DomainDN=(Get-ADDomain).DistinguishedName $ParentOU= "OU=$Country, $DomainDN" $OUs = @("Admins", "Computers", "Contacts", "Groups", "Servers", "Service Accounts", "Users") # Create main OU for branch $newOU=New-ADOrganizationalUnit -Name $CityFull -Path $ParentOU -Description "A container for $CityFull users" -PassThru # Loop through sub-OU names and create each inside the main OU foreach ($OU in $OUs) { New-ADOrganizationalUnit -Name $OU -Path $newOU } # Create branch admin groups $adminGroupName = "$City" + "_admins" New-ADGroup -Name $adminGroupName -Path ("OU=Admins, " + $newOU. DistinguishedName) -GroupScope Global -PassThru $accountManagersGroup = "$City" + "_account_managers" New-ADGroup -Name $accountManagersGroup -Path ("OU=Admins, " + $newOU. DistinguishedName) -GroupScope Global -PassThru $wksAdminsGroup = "$City" + "_wks_admins" New-ADGroup -Name $wksAdminsGroup -Path ("OU=Admins, " + $newOU. DistinguishedName) -GroupScope Global -PassThru # Grant permissions to specific groups on the Users OU to delegate password reset rights, for example # Note: You’ll probably need to tweak rights based on your needs and use Set-ACL for finer control
Je kunt hier veel uitbreiden, zoals het toewijzen van GPO’s of het delegeren van specifieke machtigingen aan andere OU’s. PowerShell maakt het vrij eenvoudig als je de basis eenmaal onder de knie hebt. Het script op GitHub is een goed startpunt, met veel commentaar.
Even een korte waarschuwing: controleer je uitvoeringsbeleid voordat je scripts uitvoert (bijvoorbeeld door `sudo apt run` te gebruiken Set-ExecutionPolicy RemoteSigned) of zorg ervoor dat je dit doet als domeinbeheerder. Anders kan PowerShell weigeren het script uit te voeren of fouten genereren.
Samenvatting
Het beheren van Active Directory via PowerShell kan in eerste instantie intimiderend lijken, maar als je er eenmaal aan gewend bent, is het een echte gamechanger. Het automatiseren van het aanmaken van organisatie-eenheden (OU’s), het instellen van groepen en het delegeren van machtigingen in één keer – dat soort dingen is de kleine investering in het begin zeker waard. Als je meerdere vestigingen beheert of gewoon genoeg hebt van het constant klikken, zullen deze scripts je op de lange termijn enorm veel tijd besparen.
Samenvatting
- Gebruik New-ADOrganizationalUnit om in bulk organisatie-eenheden aan te maken.
- Wijzig de attributen indien nodig met Set-ADOrganizationalUnit.
- Verwijder eenvoudig organisatie-eenheden met Remove-ADObject.
- Automatiseer geneste structuren en machtigingen met PowerShell-scripts.
- Breid dit uit door GPO’s of andere aangepaste taken voor elke vestiging toe te voegen.