Archiv der Kategorie: Windows Tutorials

Windows Application Integrations Advanced Workarounds Tutorials Enhancements unblog technical contribution for professionals

Active Directory Benutzer erstellen in PowerShell aus CSV-Datei

Benutzer Automatisch in Bulk erstellen mit New-AdUser aus Import-CSV-Datei.

Soll eine grosse Anzahl an Benutzern in Active Direc­tory automatisiert angelegt werden, beinhaltet auch hier die Power­Shell das adäquate vorgehen, um mehrere Benutzer mit New-AdUser über Import-Csv zu erstellen.

Dieses Tutorial zeigt die Anwendung von New-AdUser für das automatisierte Erstellen von Active Directory Benutzerkonten, durch Import der Objekt Daten aus einer CSV-Datei mit Import-Csv.

Bei der Migration wo Teile von Benutzerkonten aus einer Organisationseinheit (OU) aus einem Active Direc­tory Forest in ein neuen oder anderen Forest übernommen werden sollen, ermöglichen die Active Directory Module dies mit dem Cmdlet Get-AdUser für das User-Management, sowie das Anlegen neuer Benutzerkonten mit New-ADUser. Es werden insgesamt rund 50 Parameter unterstützt, deren Namen mit den Attributen im AD überein­stimmen.

Benutzer erstellen mit New-AdUser aus CSV-Datei

Ein einfacher Aufruf könnte so aussehen, wenn man wie hier einen neuen Benutzer mit dem SamAccountNameSebastian“ erstellt.

$Password = Read-Host "Enter a Password" -AsSecureString
New-ADUser -Name Sebastian -GivenName Sebastian -Surname Furrer -Path "OU=User,OU=Office,DC=Company,DC=com" -Enabled $True -AccountPassword $Password -ChangePasswordAtLogon $True 

Die PowerShell Befehlszeile erstellt ein Benutzer und übergibt mit dem Parameter AccountPassword ein Passwort, dieses zuvor eingegeben wurde. Es können zahlreiche weitere Attribute mit Werten angewendet werden. Für das einfache Benutzer anlegen reicht dieses Beispiel schon aus, damit sich der Benutzer an AD anmelden kann.

Benutzerexport und Import über CSV-Datei

Es lassen sich die Benutzer mittels Filter aus der OU in eine CSV-Datei exportieren, diese danach für den Benutzer Import zur Verfügung steht, für eine vorgesehene Active Directory Organisations­einheit.

Get-AdUser -Filter * -SearchBase "OU=User,OU=Office,DC=Company,DC=com" | Export-Csv -Path .\users.csv -NoClobber -Delimiter ";"

Bei einer grossen Anzahl an Benutzern wird man diese nicht einzeln anlegen wollen. Am besten eignet sich hier der Import von Daten aus der CSV-Datei. Es muss die Voraussetzung erfüllt sein, das die Spalten­überschriften in der CSV-Datei exakt mit den Namen der Parameter übereinstimmen. Eine mit Export-Csv exportierte Datei kann in etwa wie folgt aussehen.

Benutzerexport und Import über CSV-Datei. Benutzer erstellen mit New-AdUser csv-datei

  Wurde der Export mit Komma als Delimiter formatiert, Import-Csv mit Trennzeichen über Parameter Delimiter spezifizieren.

Eine foreach Schleife erstellt die Benutzer im vorgegeben OU-Kontext.

$Import = Import-CSV ".\users.csv" -Delimiter ";"
$OU = "OU=User,OU=Office,DC=Company,DC=com"
$Password = ConvertTo-SecureString "Initpass" -AsPlainText -Force

foreach ($user in $Import) {
  New-ADUser -Name $user.SamAccountName -GivenName $user.GivenName -Surname $user.Surname -Path $OU -AccountPassword $Password -ChangePasswordAtLogon $True -Enabled $True -UserPrincipalName $user.UserPrincipalName
}

Die Befehlszeilen in PowerShell in demselben Verzeichnis ausführen wo die exportierte CSV-Datei („users.csv„) liegt, oder mit dem Parameter -Path der entsprechende Pfad zur Datei übergeben.

Windows PowerShell ISE Benutzer erstellen New-AdUser csv-datei

Sobald sich der neu angelegte Benutzer an AD anmeldet, erhält dieser die Aufforderung ein neues Kennwort einzugeben, hierdurch das initial Password („Initpass„) ersetzt wird.

Fazit

Das Active Directory Cmdlet New-ADUser erleichtert das Erstellen mehrerer Active Directory-Benutzer. Es können häufig verwendete Benutzereigenschaftswerte mit Parameter festgelegt werden. Mit der Verwendung des Cmdlet Import-Csv und New-ADUser ist es möglich, eine grössere Anzahl Active Directory-Benutzerobjekte zu erstellen. Die benutzerdefinierten Objekte werden aus einer durch Kommas getrennten CSV-Datei erstellt, die eine Liste von Objekteigenschaften enthält. Die Objekte werden über Pipe an New-ADUser gesendet, um die Benutzerobjekte mit Attributen zu erstellen. Die Hilfe wird mit get-help New-ADUser ausgegeben.

PowerShell Commands InvalidPasswordException

Erstellen von Benutzerkonten in der PowerShell zeigt möglicherweise den Fehler: PowerShell.Commands.InvalidPasswordException.

PowerShell Commands InvalidPasswordException

New-LocalUser : Eine Ausnahme vom Typ „Microsoft.PowerShell.Commands.InvalidPasswordException“ wurde ausgelöst.

Microsoft.PowerShell.Commands.InvalidPasswordException

Ursache: PowerShell Commands InvalidPasswordException

Die lokale Gruppenrichtlinie für Kennwort Komplexitätsvoraussetzungen entsprechen nicht der Eingabe, oder die Minimale Kennwortlänge ist nicht erfüllt.

Lösung: InvalidPasswordException

lokale Gruppenrichtlinien Minimale Kennwortlaenge

In den lokalen Gruppenrichtlinien („gpedit.msc“) die Minimale Kennwortlänge ändern, 0 für keine Minimale Kennwortlänge. Die Änderung verhindert das es zum Fehler: PowerShell InvalidPasswordException kommt.

Tipp

Erstelle mit dem folgenden PowerShell Befehl ein Benutzerkonto, mit Kennwort in derselben Befehlszeile, beispielsweise für die Script Verarbeitung.

New-LocalUser user1 -Password (ConvertTo-SecureString "8170af" -AsPlainText -Force) -FullName user1 -PasswordNeverExpires -UserMayNotChangePassword

Beschreibung

Das Cmdlet New-LocalUser erstellt ein lokales Benutzerkonto. Dieses Cmdlet erstellt ein lokales Benutzerkonto.

Das Modul Microsoft.PowerShell.LocalAccounts ist in 32-Bit-PowerShell auf einem 64-Bit-System nicht verfügbar.

Der Befehl erstellt ein lokales Benutzerkonto und gibt nicht die Parameter „AccountExpires“ oder „Password“ an. Das Konto läuft nicht ab und hat kein Passwort.

Beim erstellen von Benutzerkonten in der PowerShell kann es zum Fehler kommen: InvalidPasswordException.

Der erste Befehl verwendet das Cmdlet Read-Host, um Sie zur Eingabe eines Kennworts aufzufordern. Der Befehl speichert das Passwort als sichere Zeichenfolge in der Variablen $Password.

Der zweite Befehl erstellt ein lokales Benutzerkonto und setzt das Passwort des neuen Kontos auf die in $Password gespeicherte sichere Zeichenfolge. Der Befehl gibt einen Benutzernamen, einen vollständigen Namen und eine Beschreibung für das Benutzerkonto an.