Benutzer automatisch im Bulk in PowerShell erstellen

5
(1)

Benutzer automatisiert erstellen aus Datei mit PowerShell

Sollen Benutzer automatisiert aus einem Bulk erstellt werden, hilft ein kleines PowerShell Script. Hier werden aus einer Excel Tabelle die Benutzer erstellt. Die Benutzernamen stehen in der Spalte (A) und das Passwort enthält jeweils die zweite Spalte (B), die Tabelle wird exportiert und als CSV-Datei gespeichert.

Excel Tabelle mit Benutzer

Die Tabelle wird über Datei – Exportieren – Dateityp ändern – CSV (Trennzeichen-getrennt) (*.csv) zum Beispiel als „list.txt“ gespeichert.

Der foreach Loop liest den Inhalt der Datei „list.txt“ und schreibt den Inhalt der ersten Spalte in die Variable $user, die zweite Spalte wird zu $pass zugewiesen. Die Kommadozeilen in einer als Administrator geöffneten PowerShell ausführen.

foreach ($line in Get-Content ".\list.txt") {
    $user,$pass = $line -split ';'
    New-LocalUser $user -Password (ConvertTo-SecureString $pass -AsPlainText -Force) -FullName $user
}

Die CSV-Datei „list.txt“ enthält die Benutzer und Semikolon getrennt das Passwort. Damit das Passwort als PlainText Format übergeben werden kann, muss das cmdlet ConvertTo-SecureString mit -AsPlainText -Force übergeben werden.

Hinweis: Um Scripts ausführbar zu machen, muss zuerst das command Set-ExecutionPolicy RemoteSigned ausgeführt werden.

Möchte man verhindern das die Benutzer das Passwort ändern können, sind nachfolgende Optionen anzugeben.

foreach ($line in Get-Content ".\list.txt") {
    $user,$pass = $line -split ';'
    New-LocalUser $user -Password (ConvertTo-SecureString $pass -AsPlainText -Force) -FullName $user -Description $user -PasswordNeverExpires -UserMayNotChangePassword
}

Das Script wird in der PowerShell im selben Verzeichnis ausgeführt, in diesem die CSV-Datei „list.txt“ sich befindet.

PS C:\> .\adduser.ps1

Die so erstellten Benutzer sollten noch zu einer Gruppe angehören, folgender Loop fügt die Benutzer zur Gruppe „Benutzer“ hinzu.

foreach ($line in Get-Content ".\list.txt") {
    $user,$pass = $line -split ';'
    Add-LocalGroupMember -Group "Benutzer" -Member $user
}

Die Schleife kann man erneut einsetzen um die Benutzer zu entfernen.

foreach ($line in Get-Content ".\list.txt") {
    $user,$pass = $line -split ';'
	Remove-LocalUser -Name $user
}

Hinweis: Sollen die Benutzer in einer AD Domain erstellt werden, ist das cmdlet New-ADUser zuständig.

Wie hilfreich war dieser Beitrag?

Klicke auf die Sterne um zu bewerten!

Durchschnittliche Bewertung 5 / 5. Anzahl Bewertungen: 1

Bisher keine Bewertungen! Sei der Erste, der diesen Beitrag bewertet.

Es tut uns leid, dass der Beitrag für dich nicht hilfreich war!

Lasse uns diesen Beitrag verbessern!

Wie können wir diesen Beitrag verbessern?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert