Massenanlage von AD Usern per PowerShell mit CSV Import
Im folgenden Beispiel lege ich AD User an, deren Attribute aus einer CSV ausgelesen werden.
Hierzu lege ich zuerst Textdatei and und speichere sie im CSV-Format unter UsersList.csv
. Als Werte beim Import möchte ich die Attribute DisplayName, sAMAccountName, Surname, GivenName, initiales Passwort, OU, Domain und Mail-Domain mitgeben (weitere Attribute können einfach per Komma getrennt hinzugefügt werden). Der UPN wird hier aus GivenName, Surname und der Domain gebildet, die Email-Adresse aus GivenName, Surname und der Mail-Domain.
DisplayName,Surname,GivenName,sAMAccountName,Password,OUPath,Domain,MailDomain User1,UserSN1,UserGN1,UserSAM1,Passwd1,"OU=User,DC=domain,DC=com",@domain.com,@maildomain.com User2,UserSN2,UserGN2,UserSAM2,Passwd2,"OU=User,DC=domain,DC=com",@domain.com,@maildomain.com User3,UserSN3,UserGN3,UserSAM3,Passwd3,"OU=User,DC=domain,DC=com",@domain.com,@maildomain.com
Hinweis: Die Werte für OUPath packen wir schon in der CSV in Hochkommas, da die Kommas in den Werten später beim Import als Trennzeichen interpretiert werden.
Danach legen wir die Benutzer mit den Attributen aus der CSV an und aktivieren aus Sicherheitsgründen die Passwortänderung bei der ersten Anmeldung. Die Ergebnisse lasse ich mir mit dem -PassThru
Parameter ausgeben. Zusätzlich füge ich den neu angelegten Benutzer gleich in eine AD-Gruppe Example-Users.
Import-Module ActiveDirectory Import-Csv "C:\Temp\UsersList.csv" | ForEach-Object { $ADUserAttributes = @{ Name = $_.DisplayName GivenName = $_.GivenName Surname = $_.Surname Path = $_.OUPath SamAccountName = $_.sAMAccountName UserPrincipalName = $_.GivenName + "." $_.Surname + $_.Domain EmailAddress = $_.GivenName + "." + $_.Surname + $_.MailDomain AccountPassword = (ConvertTo-SecureString $_.Password -AsPlainText -Force) ChangePasswordAtLogon = $true Enabled = $true } New-ADUser @ADUserAttributes -PassThru Add-ADGroupMember "Example-Users" $_.sAMAccountName; }
Das ganze kann natürlich als Script gespeichert werden (z.B. Create-ADUsers-CSV.ps1
). Um dieses auszuführen öffnen wir eine PowerShell als Admin:
Set-ExecutionPolicy Unrestricted .\Create-ADUsers-CSV.ps1
–
Hallo,
der Script funktioniert nicht. Es gibt eine Fehlermeldung aus
In C:\temp\import4.ps1:9 Zeichen:46
+ UserPrincipalName = $_.“GivenName“ + „.“ $_.“Surname“ + „@“ + $_. …
Servus
Das Script hat mit dem „@“ wohl in den aktuellen PowerShell Versionen ein Problem. Das „@“ muss mit in die CSV, dann geht’s. Hab das Script aktualisiert und bei mir hat’s die User so angelegt.
Gruß
Andreas Schreiner
Wo muss das @ hin?
In den Namen der CSV Datei?
Vor jedem Attribut in der Datei selbst?
Ich habe den selbigen Fehler aber kann mit der Lösung leider nichts anfangen
Viele Grüße