Lokale Benutzer über eine CSV Datei automatisiert mit der Windows PowerShell anlegen

Viele Benutzer aus einer Datei mit Hilfe der Windows PowerShell automatisiert anlegen

Grundlegendes

Das Anlegen neuer Windows Benutzer kann auf verschiedenen Wegen erfolgen. So z.B. über das Einstellungsmenü, über die Microsoft Management Konsole, der cmd und natürlich der Windows PowerShell. Sofern man nur einzelne Benutzer anlegen möchte, ist das auch kein Problem. Doch was ist, wenn man jetzt sehr viele Benutzer anlegen muss. Genau dafür gibt es Skript-sprachen, wie die Windows PowerShell. Mit ihr ist es im Prinzip sehr einfach aus einer Datei die Daten auszulesen und anschließend weiter zu verarbeiten. Dieses Tutorial zeigt, wie man aus einer "CSV-Datei" die Daten ausliest und anschließend den entsprechenden Benutzeraccount erzeugt.

Die CSV-Datei erstellen

Als Erstes werden natürlich die Daten der Benutzer benötigt. Diese Daten kann man ganz leicht als CSV Datei bereitstellen. Oft ist es durchaus so, dass die Informationen der Benutzer in einer Datenbank erfasst werden. Daraus lässt sich leicht ein CSV (Comma-separated values) Datei erzeugen. Im Prinzip ist eine CSV Datei eine Datei, in welcher verscheidende Daten tabellarisch durch ein Komma getrennt eingetragen sind. 

Das Script zum anlegen der Benutzer

Zunächst muss die "CSV" Datei in das PowerShell Script importiert werden. Anschließend lässt man eine "foreach-Schleife" durchlaufen. Bei jedem Durchlauf werden dabei die Daten für den Namen, das Passwort etc. ausgelesen. Mittels dem Cmdlet "New-LocalUser" werden die einzelnen Accounts angelegt und mittels dem Cmdlet "Add-LocalGroupMember" der Gruppe Benutzer zugewiesen. Zusätzlich wird die Konfiguration so eingestellt, dass der Benutzer beim ersten Mal Anmelden sein Passwort ändern muss. 

Benutzer.csv Datei Zum Importerien Der Benutzer

Benutzer.csv Datei Zum Importerien Der Benutzer

# .SYNOPSIS
# Mehrfach lokale Benutzer anlegen durch den Import aus einer CSV Datei
 
# .DESCRIPTION
# Import von Benutzer Daten aus einer CSV, Account anlegen, Benuter muss das Passwort
# beim ersten mal Anmelden ändern
 
# .PARAMETER
# $user, $Import
 
# .NOTES
# Author:Markus Elsberger
# Web:https://www.it-learner.de

# Importieren der Benutzerdaten
$Import =Import-CSV "c:\Benutzer.csv"

# Auslesen der Daten aus der CSV-Datei 
foreach ($user in $Import){

# Passwort in einen SecureString umwandeln
  $password = $user.password | ConvertTo-SecureString -AsPlainText -Force

# Die neuen Benutzer anlegen
 New-LocalUser -Name $user.name -NoPassword -FullName $user.fullname -Description $user.description |  Set-LocalUser -PasswordNeverExpires $false

 # Die Benutzer zur Gruppe der Benutzer hinzufügen
 Add-LocalGroupMember -Group Benutzer -Member $user.name
 

5 Kommentare

    • Hallo, ohh das habe ich gar nicht gesehen. Danke. Werde die Datei anpassen. Im Prinzip schaut ein Eintrag in der Benutzer.txt folgendermaßen aus: name,password,fullname,description
      max,Passw0rt,Max User, IT-Schueler

      Gruß Markus

  1. Könntest du bitte die csv vervollständigen ?
    Ich verstehe nicht ganz woher das script weiß welcher der Einträge in der csv der Benutzer ist.
    foreach ($user in $Import)
    Sagt ja: für jeden Benutzer in der csv….
    was ist in der Variable “$user” ?

    • Hallo, die Benutzer Datei wurde angepasst und ist nun vollständig. Im Prinzip arbeitet die Foreach Schleife das Script Spalte für Spalte durch und übernimmt jeweils die Einträge aus der Benutzer.csv Datei. Die foreach-Schleife arbeitet dabei mit sogenannten Arrays (Also mit Datenfeldern). Gruß Markus

Kommentare sind deaktiviert.