Onderstaand PowerShell script vereist de aanwezigheid van ActiveRoles Management Shell for Active Directory (Quest Software, freeware). Deze is eenvoudig te installeren en er is geen herstart vereist.

Het .csv bestand moet er als volgt uitzien.

Markdown2 regels
naam,voornaam,achternaam,gebruikersnaam,wachtwoord,ou,upn
Piet Bos,Piet,Bos,bos,Bos$1206,"OU=Productie,DC=domein,DC=extensie",bos@domein.nl

Als eerste moeten de Quest spullen geladen worden.

PowerShell1 regel
Add-PSSnapin Quest.ActiveRoles.ADManagement;

Vervolgens moet je even verbinding maken met het domein.

PowerShell1 regel
Connect-QADService -Service "domein.extensie";

Nu kunnen we het .csv bestand inladen met de gebruikers.

PowerShell1 regel
$Gebruikers = Import-Csv "C:\gebruikers.csv";

Dan nu het echte werk: met een loop door het .csv bestand gaan en de gebruikers aanmaken.

PowerShell1 regel
foreach ($Gebruiker in $Gebruikers) { New-QADUser -Name $Gebruiker.naam -ParentContainer $Gebruiker.ou -FirstName $Gebruiker.voornaam -LastName $Gebruiker.achternaam -UserPassword $Gebruiker.wachtwoord -SamAccountName $Gebruiker.gebruikersnaam -UserPrincipalName $Gebruiker.upn -DisplayName $Gebruiker.naam -Email $Gebruiker.upn; }

Neem onderstaande op binnen de foreach loop als je de nieuwe gebruikers direct lid wilt maken van een groep.

PowerShell1 regel
Add-QADGroupMember -Identity groepsnaam -Member $Gebruiker.upn;

Het vinkje “Wachtwoord verloopt nooit” aanzetten.

PowerShell1 regel
Set-QADUser -Identity $Gebruiker.upn -PasswordNeverExpires $true;

Vinkje “Gebruiker kan wachtwoord niet wijzigen” aanzetten. Let op dat als de server in het Nederlands is geïnstalleerd, het stukje ‘-Account SELF,Everyone’ moet worden gewijzigd in ‘-Account ZELF,Iedereen’.

PowerShell1 regel
Get-QADUser $Gebruiker.upn | Add-QADPermission -Account SELF,Everyone -ExtendedRight "User-Change-Password" -Deny -ApplyTo ThisObjectOnly;

Het nieuwe account gelijk uitschakelen.

PowerShell1 regel
Disable-QADUser -identity $Gebruiker.upn;

Dat alles gecombineerd ziet er dan zo uit.

PowerShell1 regel
Add-PSSnapin Quest.ActiveRoles.ADManagement; Connect-QADService -Service "domein.extensie"; $Gebruikers = Import-Csv "C:\gebruikers.csv"; foreach ($Gebruiker in $Gebruikers) { New-QADUser -Name $Gebruiker.naam -ParentContainer $Gebruiker.ou -FirstName $Gebruiker.voornaam -LastName $Gebruiker.achternaam -UserPassword $Gebruiker.wachtwoord -SamAccountName $Gebruiker.gebruikersnaam -UserPrincipalName $Gebruiker.upn -DisplayName $Gebruiker.naam -Email $Gebruiker.upn; Add-QADGroupMember -Identity groepsnaam -Member $Gebruiker.upn; Set-QADUser -Identity $Gebruiker.upn -PasswordNeverExpires $true; Get-QADUser $Gebruiker.upn | Add-QADPermission -Account SELF,Everyone -ExtendedRight "User-Change-Password" -Deny -ApplyTo ThisObjectOnly; Disable-QADUser -identity $Gebruiker.upn; }

Je kunt het script als 1 regel plakken in een PowerShell venster. Wil je het script uitvoeren vanuit een .ps1 bestand dan moet je rekening houden met de PowerShell Execution Policy, zie dit artikel.

Windows PowerShell met een script dat Active Directory-gebruikers uit een CSV-bestand aanmaakt.
Windows PowerShell met een script dat Active Directory-gebruikers uit een CSV-bestand aanmaakt.