Archiv der Kategorie: Workaround

UNBLOG Tutorials Usability and Addons Integration with Technical Workarounds and Tutorials for Professionals.

Benutzer automatisch im Bulk in PowerShell erstellen

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 für die Bulk erstellung

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, um die Benutzer als Bulk zu erstellen.

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 im Bulk durch 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 um Benutzer als Bulk zu erstellen 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.

Fazit

In diesem Beitrag wird gezeigt wie Benutzer automatisiert aus einem Bulk erstellt werden können. Für die Migration und bei der Reorganisation des Active Directory Forest kann es eine nützliche Vorgehensweise sein, ohne das die Gesamtstruktur und die darin enthaltenen Benutzer Elemente einzeln erstellt und verwaltet werden müssen, was bei vielen Elemente eine erhebliche Erleichterung oder Verkürzung bis zur wieder betriebsbereiten Umgebung sein kann.

Windows Terminal Warnung mehrere Zeilen einfügen

Windows Terminal Warnung: Sie sind im Begriff, Text einzufügen, der mehrere Zeilen enthält

Windows Terminal Warnung

Erscheint beim einfügen mehrerer Zeilen aus der Zwischenablage in Windows Terminal die Warnung:

  Sie sind im Begriff, Text einzufügen, der mehrere Zeilen enthält. Wenn Sie diesen Text in Ihre Shell einfügen, kann dies zu einer unerwarteten Ausführung von Befehlen führen. Möchten Sie den Vorgang fort setzen?

Windows Terminal Warnung, Sie sind im Begriff, Text einzufügen, der mehrere Zeilen enthält.

Option multiLinePasteWarnin: false

Beim arbeiten in der Shell kann die Sicherheitsmassnahme nützlich sein. Beim Editieren jedoch wird es eher hinderlich. Es gibt aber die Option „multiLinePasteWarning“ diese von true auf false getzt werden kann.

"$schema": "https://aka.ms/terminal-profiles-schema",
"defaultProfile": "PowerShell",
"alwaysShowTabs": true,
"copyFormatting": "none",
"copyOnSelect": true,
"multiLinePasteWarning": false,

Nachdem die Windows Terminal Einstellung mit Ctrl+, und JSON-Datei öffnen, unter $schema die Zeile „multiLinePasteWarning“: false eingefügt wird, gibt es die Warnug bei mehrzeiligen einfügen nicht mehr.

Terminalemulator Windows Terminal

Windows Terminal ist ein Terminalemulator mit mehreren Registerkarten. Den Microsoft für Windows 10 und 11 als Ersatz für die Windows Console anbot. Er kann jede Befehlszeilenanwendung in einer separaten Registerkarte ausführen. Dabei sind cmd.exe, PowerShell, WSL, SSH, and Azure Cloud Shell Connector vorkonfiguriert. Windows Terminal verfügt über eine eigene Rendering Engine, welches ab Version 1.11 unter Windows 11 für Befehlszeilenanwendungen verwendet werden kann.

Das Windows-Terminal ist eine moderne, schnelle, effiziente, leistungsstarke und produktive Terminal-Anwendung für Benutzer von Befehlszeilentools und Shells. Wie beispielsweise Eingabeaufforderung, PowerShell und WSL. Die wichtigsten Funktionen des Windows-Terminals umfassen mehrere Registerkarten, Bereiche, Unicode- und UTF-8-Zeichenunterstützung, GPU-beschleunigtes Textrendering-Modul sowie benutzerdefinierte Designs, Formatvorlagen und Konfigurationen.

Die Terminaleinstellungen können über das Dropdown-Menü oder durch Drücken von Strg + , auf der Tastatur geöffnet werden. Ab Version 1.7 ist die JSON-Datei, die alle Terminaleinstellungen enthält, nicht mehr standardmäßig geöffnet, wie dies in früheren Versionen der Fall war. Es wurde eine neue Benutzeroberfläche für Einstellungen entwickelt und ist jetzt die Standardmethode zum Verwalten der Einstellungen. Obwohl es sich lediglich um ein Frontend für die zugrunde liegende JSON-Datei handelt, auf die weiterhin über JSON-Datei öffnen zugegriffen und in VS Code bearbeitet werden kann. Dazu muss VS Code auf dem System installiert sein.