Microsoft Active Directory fungeert als centraal punt voor het beheer, de autorisatie en de authenticatie. In AD wordt toegang tot netwerkbronnen verleend aan beveiligingsprincipes, zoals gebruikersaccounts en computeraccounts, en deze machtigingen kunnen in de loop der tijd veranderen. Om het toegangsbeheer te vereenvoudigen en de beveiliging te verbeteren, maken middelgrote en grote bedrijven vaak gebruik van Active Directory-beveiligingsgroepen, die gebruikersaccounts, computeraccounts en andere groepen kunnen bevatten. Zij gebruiken vaak ook distributiegroepen voor het beheer van e-maildistributielijsten. Zowel beveiligings- als distributiegroepen hebben unieke beveiligingsidentifiers (SID’s) en globaal unieke identifiers (GUID’s).

De ADUC MMC-snap-in is geweldig voor het beheer van beide soorten groepen, maar PowerShell is een veel efficiëntere manier om ze in bulk te beheren.

Als u nog niet bekend bent met AD-groepen en groepsbeheer, lees dan eerst de Active Directory Group Management Best Practice-gids voordat u verder gaat.

Bedenk ook dat u, om deze PowerShell-scripts te kunnen gebruiken, de module voor interactie met AD moet importeren – de Active Directory-module voor Microsoft Windows PowerShell. Deze module is geïntroduceerd in Windows Server 2008 R2 en is standaard ingeschakeld in Windows Server 2012 en later. U kunt de volledige lijst met AD-module cmdlets opvragen door het volgende commando uit te voeren:

Get-Command -Module ActiveDirectory

De volledige lijst bevat 147 cmdlets; alleen deze elf hebben echter betrekking op Active Directory-groepen:

  • Add-ADGroupMember
  • Add-ADPrincipalGroupMembership
  • Get-ADAccountAuthorizationGroup
  • Get-ADGroup
  • Get-ADGroupMember
  • Get-ADPrincipalGroupMembership
  • New-ADGroup
  • Remove-ADGroup
  • Remove-ADGroupMember
  • Remove-ADPrincipalGroupMembership
  • Set-ADGroup

Een Active Directory-groep maken met PowerShell

Om een AD-groep te maken, gebruikt u het cmdlet New-ADGroup. U krijgt de syntaxis ervan door het volgende commando uit te voeren:

Get-Command New-ADGroup –Syntax

De eenvoudigste manier om een groep te maken, is het uitvoeren van dit korte script:

New-ADGroup "Group Name"

Het systeem vraagt u om de parameter “GroupScope” op te geven en maakt vervolgens een nieuwe groep. Deze groep zal echter standaard waarden hebben, zoals:

  • Hij zal worden aangemaakt in de standaard LDAP container genaamd “Users”.
  • Hij zal het “Security” groepstype hebben.
  • De velden members, member of, description, email en notes zullen allemaal leeg zijn.

Stellen we ons voor dat we een beveiligingsgroep willen aanmaken genaamd “Quality” op onze AD DC. Laten we de volgende parameters gebruiken: Het moet in de OU “Productie” staan (-Path), het moet een beveiligingsgroep zijn (-GroupCategory), en het moet globaal zijn (-GroupScope).

New-ADGroup "Quality" -Path "OU=Production,DC=enterprise,dc=com" -GroupCategory Security -GroupScope Global -PassThru –Verbose

Als u een universele distributiegroep wilt maken, wijzigt u eenvoudig de parameter -GroupCategory in “Distributie” en de parameter -GroupScope in “Universeel”. U kunt ook het LDAP-pad wijzigen door de -Path parameter te veranderen.

Een Active Directory groep verwijderen met PowerShell

Om een AD-groep te verwijderen, gebruikt u het cmdlet Remove-ADGroup. Het eenvoudigste script daarvoor ziet er als volgt uit:

Remove-ADGroup -Identity Quality

U wordt gevraagd om de verwijdering van de groep te bevestigen.

Gebruikers en computers aan een groep toevoegen met PowerShell

U kunt gebruikers aan een AD-groep toevoegen met het cmdlet Add-AdGroupMember. Als u bijvoorbeeld twee gebruikers, B.Jackson en E.Franklin, aan de “Quality” groep, dan ziet het script er als volgt uit:

Add-AdGroupMember -Identity Quality -Members B.Jackson, E.Franklin

Als u eenmaal gebruikers aan een beveiligingsgroep hebt toegevoegd, kunt u het onderstaande script uitvoeren om te controleren of ze als lid in de lijst zijn opgenomen:

Get-ADGroupMember -Identity Quality

Als u gebruikers moet toevoegen aan een andere beveiligings- of distributiegroep, zoals “Domain Admins”, geeft u “Domain Admins” op als de waarde voor de parameter -Identity. Als een groep lid moet zijn van een andere groep, geef dan een groepsnaam op als waarde voor de parameter -Members. Hetzelfde principe geldt voor computer accounts, maar je moet een dollarteken ($) toevoegen aan het eind van de computer account naam. Om bijvoorbeeld de computer “WKS043” aan een groep toe te voegen, specificeert u “WKS043$” als de waarde voor de -Member parameter:

Add-AdGroupMember -Identity Quality -Members WKS043$

Een gebruiker aan meerdere groepen toevoegen

Om een gebruiker in één keer aan meerdere groepen toe te voegen, voert u het volgende script uit.

"Managers","Quality" | Add-ADGroupMember -Members ` (Read-Host -Prompt "Enter User Name")

U wordt gevraagd om de gebruikersnaam in te voeren.

Een gebruiker aan een groep toevoegen vanuit een CSV-bestand

Als u een groot aantal gebruikers aan een groep wilt toevoegen, kunt u ze in een CSV-bestand opgeven en dat bestand vervolgens importeren. Merk op dat de lijst met gebruikersnamen in het CSV-bestand de SamAccountNames in de kolom “users” moet bevatten, zoals hieronder wordt weergegeven:

Om gebruikers aan een groep toe te voegen vanuit een CSV-bestand, voert u het volgende PowerShell-script uit:

Import-CSV C:\scripts\users.csv -Header users | ForEach-Object {Add-AdGroupMember -Identity "Quality" -members $_.users}

Gebruikers kopiëren van de ene groep naar de andere

Als u alle leden van de ene groep naar een andere groep wilt kopiëren, voert u het volgende script uit:

Get-ADGroupMember "Quality" | Get-ADUser | ForEach-Object {Add-ADGroupMember -Identity "QualityControl" -Members $_}

Verwijderen van gebruikers of computers uit een groep

Om een gebruiker uit een groep te verwijderen, gebruikt u het cmdlet Remove-ADGroupMember:

Remove-ADGroupMember -Identity Quality -Members J.Robinson

Om een computeraccount uit een groep te verwijderen, specificeert u de computernaam met een dollarteken ($) aan het eind voor de waarde van de parameter -Members.

Verwijderen van meerdere gebruikersaccounts uit een groep

Een eenvoudige manier om meerdere gebruikers uit een AD-groep te verwijderen, is door een CSV-bestand met de lijst met gebruikersnamen te maken en deze gebruikers vervolgens uit het groepsobject te verwijderen met behulp van dit script:

Import-CSV C:\scripts\users.csv -Header users | ForEach-Object {Remove-ADGroupMember -Identity "Quality" -members $_.users}

Verwijderen van een gebruiker uit alle groepen

Om een gebruiker uit alle groepen te verwijderen, voert u dit script uit:

Get-ADUser -Identity E.Franklin -Properties MemberOf | ForEach-Object { $_.MemberOf | Remove-ADGroupMember -Members $_.DistinguishedName -Confirm:$false}

Merk op dat de gebruiker alle groepslidmaatschappen zal verliezen, behalve “Domeingebruikers”, die handmatig kunnen worden verwijderd indien nodig.

Rapportage over Active Directory-groepen

Nu we weten hoe we veel voorkomende Active Directory-beheertaken met betrekking tot groepen kunnen uitvoeren met PowerShell, laten we eens kijken hoe we kunnen rapporteren welke groepen er in AD bestaan:

Om een lijst van alle groepen in AD te maken, gebruikt u het onderstaande script:

Get-ADGroup -filter * -properties GroupCategory | ft name,groupcategory

U wilt natuurlijk ook AD-groepsleden en wijzigingen in AD-groepslidmaatschappen bekijken. Hier vindt u links naar instructies voor het uitvoeren van deze meer complexe taken:

  • Hoe wijzigingen in Active Directory-groepslidmaatschap te bewaken
  • Hoe AD-gebruikersgroepslidmaatschapsrapporten op te vragen
  • Hoe leden van een bepaalde AD-groep te exporteren
  • OU’s beheren en hun objecten verplaatsen met PowerShell

Conclusie

Nu u hebt geleerd hoe u groepen en groepslidmaatschappen in Active Directory kunt beheren met PowerShell-scripts, kunt u proberen een deel van de groepbeheerstaken zelf uit te voeren. Wees echter voorzichtig, en vergeet niet om de Active Directory Prullenbak functie in te schakelen zodat je gemakkelijk je wijzigingen kunt terugdraaien als er iets fout gaat. Vergeet niet dat de ADUC MMC snap-in geweldig is voor het beheren van groepen en groepslidmaatschap, maar PowerShell is veel beter voor het beheren van groepen in bulk.

Jeff is een Director of Global Solutions Engineering bij Netwrix. Hij is al lange tijd Netwrix blogger, spreker en presentator. Op de Netwrix blog deelt Jeff lifehacks, tips en trucs die uw systeembeheer ervaring drastisch kunnen verbeteren.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.