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.
# .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
Hallo, die Benutzer.txt ist leer. Wie würde ein Eintrag für einen Benutzer aussehen?
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
Hallo, die Benutzer.csv Datei müssen nun Einträge enthalten. Gruß Markus
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