Het gebruik van `Import-CSV` in PowerShell is niet alleen handig voor het lezen van gegevens; het is essentieel voor het automatiseren van bulktaken in Active Directory, Exchange of elk ander systeem dat gestructureerde gegevens verwerkt. Als u ooit handmatig gebruikersinformatie in tientallen accounts hebt moeten bijwerken, zult u dit waarderen. Het importeren van een CSV-bestand met al uw gebruikers en het in één keer uitvoeren van bewerkingen kan enorm veel tijd besparen, vooral wanneer u met tientallen of honderden vermeldingen te maken hebt. Bovendien zorgt het voor consistentie en voorkomt het handmatige typefouten. Houd er wel rekening mee dat coderings- of regionale instellingen soms problemen kunnen veroorzaken, dus het is handig om te weten hoe u de coderings- of scheidingstekeninstellingen kunt aanpassen.
Als je een Excel-bestand hebt met gebruikersgegevens – bijvoorbeeld inlognamen, e-mailadressen, telefoonnummers en afdelingen – en dit hebt opgeslagen als een CSV-bestand, is het belangrijk om die gegevens in PowerShell te importeren. Van daaruit kun je door elke rij lopen om AD-gebruikers bij te werken of andere batchbewerkingen uit te voeren. Erg handig als je gebruikerskenmerken in bulk wilt wijzigen zonder urenlang in AD Gebruikers en Computers te hoeven klikken.
Hoe u Import-CSV in PowerShell kunt gebruiken voor gebruikersbeheer
Hoe u uw CSV-gegevens kunt importeren en lezen
Eerst moet je het pad naar je CSV-bestand kiezen, bijvoorbeeld C:\PS\my_ad_users.csv. Wanneer je het volgende uitvoert:
$ADUsers = Import-CSV -Path C:\PS\my_ad_users.csv
Deze opdracht laadt je CSV-bestand in een variabele en zet elke rij om in een PSCustomObject. Het is een beetje vreemd, maar op sommige computers kan dit mislukken als de codering niet klopt of als de scheidingstekens niet correct zijn. Controleer daarom de codering van je CSV-bestand (UTF-8 is het veiligst als je met speciale tekens werkt).Nog iets: als je CSV-bestand puntkomma’s in plaats van komma’s gebruikt, voeg dan toe -Delimiter ';'— let op: het standaard scheidingsteken is een komma, wat in de meeste gevallen de norm is.
Wil je controleren wat je zojuist hebt geïmporteerd? Gebruik de functie $ADUsers | Get-Memberom te zien welke eigenschappen beschikbaar zijn, zoals ADlogin, Email, Phone, enz. PowerShell behandelt elke rij namelijk als een object: je kunt een kolom benaderen met $_. Emailof meerdere kolommen weergeven met Select-Object.
Hoe codering en scheidingstekens te corrigeren als gegevens er vreemd uitzien
Heb je wel eens gehoord van coderingsfouten? Ja, soms raken speciale tekens of niet-Latijnse scripts door elkaar als je niet de juiste codering opgeeft. Probeer in dat geval -Encoding UTF8het volgende toe te voegen:
Import-CSV -Path C:\PS\my_ad_users.csv -Encoding UTF8
Ook voor scheidingstekens geldt dat als het CSV-bestand niet door komma’s gescheiden is, u het juiste scheidingsteken moet opgeven. Bijvoorbeeld met puntkomma’s:
$ADUsers = Import-CSV -Path C:\PS\my_ad_users.csv -Delimiter ';'
En als je niet zeker bent over het scheidingsteken, voer dan een commando uit (Get-Culture).TextInfo. ListSeparatorom te zien wat de standaardinstelling in jouw regio is. Normaal gesproken is dat een komma, maar sommige regio’s gebruiken een puntkomma.
Gegevens uit uw CSV-bestand openen en gebruiken
Na het importeren heb je een array met objecten. Je kunt alle eigenschappen weergeven met $ADUsers | Get-Member. Om alle e-mails weer te geven:
$ADUsers. Email
En als je specifieke kolommen wilt, selecteer ze dan met Select-Object— dat maakt het makkelijker om te zien waarmee je werkt. Als je een bepaalde gebruiker nodig hebt, zoals de vierde rij, voer dan gewoon uit $ADUsers[3](onthoud dat het bij nul begint).Dat is handig als je specifieke gegevens wilt debuggen of controleren voordat je bulkwijzigingen doorvoert.
Hoe u AD-gebruikers in bulk kunt bijwerken
Oké, nu komt het erop aan: het daadwerkelijk bijwerken van gebruikers op basis van dat CSV-bestand. Het plan is om door elk record te lopen en een cmdlet zoals Set-ADUser uit te voeren. Want hiervoor moet natuurlijk de Active Directory-module geïnstalleerd zijn en de juiste machtigingen aanwezig zijn.
Hier is een typische lus:
# Loop through each user in the CSV and update AD attributes $ADUsers | ForEach-Object { Set-ADUser -Identity $_. ADlogin ` -MobilePhone $_. Phone ` -Department $_. Department ` -EmailAddress $_. Email }
Houd er rekening mee dat er soms fouten of gedeeltelijke updates kunnen optreden, vooral als uw CSV-bestand ontbrekende of onjuist opgemaakte gegevens bevat. In sommige gevallen kan het helpen om controles of try-catch-blokken toe te voegen. Als u veel updates uitvoert, is het bovendien waarschijnlijk beter om dit in fases te doen of eerst met een kleine batch te testen.
Als je de voorkeur geeft aan een kortere syntaxis, kun je de uitvoer ook rechtstreeks in een foreach-lus invoeren:
Import-CSV C:\PS\my_ad_users.csv | ForEach-Object { Set-ADUser -Identity $_. AdLogin -MobilePhone $_. Phone -Department $_. Department -EmailAddress $_. Email }
Dit werkt prima zolang de gegevens consistent zijn en uw CSV-bestand correct is opgemaakt.
Extra informatie of aangepaste gegevens toevoegen
Soms wilt u extra informatie, zoals de huidige datum, als een nieuwe eigenschap aan elk object toevoegen. Dat kunt u doen door een lid toe te voegen:
$ADUsers | Add-Member -MemberType NoteProperty -Name Date -Value (Get-Date -Format dd/MM/yyyy)
Waarom ook niet? Het maakt het bijhouden van wijzigingen later gewoon makkelijker. Maar onthoud wel dat deze extra gegevens in je objecten in het geheugen blijven staan, tenzij je ze exporteert of ergens anders opslaat.
Enkele andere handige gebruiksscenario’s
- Bulkexport van mailboxen: New-MailboxExportRequest met gegevens uit een CSV-bestand.
- Voeg in één keer meerdere gebruikers toe aan AD-groepen of Microsoft Entra ID-groepen met behulp van CSV-bestanden en dezelfde lusmethode.
Eerlijk gezegd, als je eenmaal doorhebt hoe je CSV-bestanden importeert en er doorheen loopt, gaat het automatiseren van taken veel sneller. Let wel op coderingsproblemen en onjuiste scheidingstekens – dat zijn veelvoorkomende kleine ergernissen.
Samenvatting
- Controleer altijd de CSV-codering (UTF8 is het veiligst).
- Gebruik het juiste scheidingsteken als dit geen komma is.
- Gebruik deze functie
Get-Memberom uw geïmporteerde gegevens te verkennen. - Loop door je gegevens om
ForEach-Objectbulkwijzigingen te automatiseren.
Samenvatting
Hopelijk bespaart dit iemand een paar uur. Zodra je het patroon doorhebt – CSV importeren, herhalen, bijwerken – vraag je je af waarom je het ooit handmatig hebt gedaan. Wees wel voorzichtig, test eerst met kleine batches en maak indien mogelijk altijd een back-up van je Active Directory-gegevens. Succes ermee – batchautomatisering is echt een tijdsbesparing, zodra je ziet hoe het in de praktijk werkt.