Wie man mit PowerShell zufällige Zeichenfolgen generiert
-
Verwenden Sie das Cmdlet
Get-Random
, um zufällige Zeichenfolgen in PowerShell zu generieren -
Verwenden Sie die Funktion
GeneratePassword()
, um zufällige Passwörter in PowerShell zu generieren -
Verwenden Sie das Cmdlet
New-Guid
, um zufällige Zeichenfolgen in PowerShell zu generieren -
Verwenden Sie das Cmdlet
Get-Random
mit Zeichensätzen, um zufällige Zeichenfolgen in PowerShell zu generieren - Fazit

Bei der Verwaltung von Active Directory können Aufgaben wie das Importieren von Massennutzern mit einzigartigen temporären Passwörtern herausfordernd sein. Glücklicherweise bietet PowerShell effektive Lösungen zur Generierung von zufälligen Zeichenfolgen, um diese Aufgaben zu vereinfachen.
In diesem Artikel werden wir erkunden, wie man dies mit verschiedenen Methoden in PowerShell erreicht.
Verwenden Sie das Cmdlet Get-Random
, um zufällige Zeichenfolgen in PowerShell zu generieren
PowerShell bietet einen nativen Befehl namens Get-Random
, der zufällige Zeichen oder Zahlen auswählt. Wenn wir ein Array von Elementen an den Befehl Get-Random
übergeben, wählt er eines oder mehrere Objekte aus dieser Sammlung zufällig aus.
Beim Erstellen von Passwörtern können wir das Cmdlet Get-Random
viermal mit verschiedenen input
-Parametern (Sonderzeichen, Zahlen, Großbuchstaben und Kleinbuchstaben) aufrufen, die Ergebnisstrings verketten und sie mit einem weiteren Aufruf von Get-Random
mischen.
Im folgenden Beispiel definieren wir eine Hash-Tabelle namens $TokenSet
, um Zeichensätze für Großbuchstaben(U
), Kleinbuchstaben(L
), Zahlen(N
) und Sonderzeichen(S
) zu speichern. Diese Zeile Code $variablename = Get-Random -Count 5 -InputObject $TokenSet.U
erzeugt eine zufällige Auswahl von 5 Zeichen aus den Zeichensätzen(U
, L
, N
, S
) und speichert sie in einer Variablen($Upper
, $Lower
, $Number
, $Special
).
Dann kombinieren wir die zufällig ausgewählten Zeichen aus jedem Satz zu einem einzigen Zeichensatz namens $StringSet
. Schließlich generieren wir eine zufällige Zeichenfolge aus 15 Zeichen, indem wir aus dem $StringSet
auswählen und sie dann zusammenfügen, um das endgültige Passwort zu bilden.
Beispielcode:
$TokenSet = @{
U = [Char[]]'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
L = [Char[]]'abcdefghijklmnopqrstuvwxyz'
N = [Char[]]'0123456789'
S = [Char[]]'!"#$%&''()*+,-./:;<=>?@[\]^_`{|}~'
}
$Upper = Get-Random -Count 5 -InputObject $TokenSet.U
$Lower = Get-Random -Count 5 -InputObject $TokenSet.L
$Number = Get-Random -Count 5 -InputObject $TokenSet.N
$Special = Get-Random -Count 5 -InputObject $TokenSet.S
$StringSet = $Upper + $Lower + $Number + $Special
(Get-Random -Count 15 -InputObject $StringSet) -join ''
Ausgabe:
9ZimEXDW*@xo?12
Der obige Code generiert jedes Mal eine andere Zeichenfolge. Allerdings beinhaltet er mehrere Aufrufe des Cmdlets Get-Random
, was das Skript länger und in Bezug auf die Verarbeitungszeit langsamer machen kann.
Der nächste Abschnitt behandelt, wie dieselbe Funktionalität mit nur wenigen Zeilen Code erreicht werden kann.
Verwenden Sie die Funktion GeneratePassword()
, um zufällige Passwörter in PowerShell zu generieren
Wenn Sie passwortspezifische Zeichenfolgen erstellen müssen, können Sie die Funktion GeneratePassword()
aus dem [System.Web.Security]
-Namespace verwenden. Um diese Funktion zu nutzen, müssen Sie zuerst die System.Web
-Bibliothek laden.
[Reflection.Assembly]::LoadWithPartialName("System.Web")
Sobald sie geladen ist, können wir die Funktion GeneratePassword()
ausführen, um ein Passwort zufällig zu generieren.
Im folgenden Code verwenden wir den [System.Web.Security.Membership]
-Namespace, um auf die Funktion GeneratePassword()
zuzugreifen.
Beispielcode:
[System.Web.Security.Membership]::GeneratePassword(15, 2)
Ausgabe:
QQjj*LJ:e=YZ)Fo
Wie wir im obigen Beispielcode sehen können, akzeptiert die Funktion GeneratePassword()
zwei Argumente:
-
Das erste Argument nimmt einen ganzzahligen Wert an, der die Anzahl der insgesamt benötigten Zeichen für das Passwort darstellt.
-
Das zweite Argument nimmt einen ganzzahligen Wert an, der die Anzahl der Sonderzeichen für das Passwort darstellt.
Dieser Code garantiert jedoch nicht die Anwesenheit von mindestens einem Zahlenzeichen im Passwort. Um sicherzustellen, dass mindestens ein Zahlenzeichen vorhanden ist, können Sie den folgenden Code verwenden.
Beispielcode:
do {
$pwd = [System.Web.Security.Membership]::GeneratePassword(15, 2)
} until ($pwd -match '\d')
$pwd
Zuerst erstellen wir eine Schleife mit dem do
-Schlüsselwort, um ein Passwort zu generieren und sicherzustellen, dass es mindestens ein Zahlenzeichen enthält. Dann generieren wir ein zufälliges Passwort mit 15 Zeichen, einschließlich 2 Sonderzeichen, mit dieser Zeile Code [System.Web.Security.Membership]::GeneratePassword(15, 2)
und speichern es in der Variablen $pwd
.
Die Schleife wiederholt sich, bis das generierte Passwort mindestens ein Zahlenzeichen enthält.
Ausgabe:
Y4UkK4)G+lannRd
In nur wenigen Zeilen Code erzeugt die obige Ausgabe jedes Mal eine andere Zeichenfolge und stellt sicher, dass mindestens ein Zahlenzeichen in der generierten Zeichenfolge vorhanden ist.
Verwenden Sie das Cmdlet New-Guid
, um zufällige Zeichenfolgen in PowerShell zu generieren
PowerShell bietet das Cmdlet New-Guid
, um zufällige GUIDs (Globally Unique Identifiers) zu generieren. Sie können diese GUIDs als zufällige Zeichenfolgen für verschiedene Zwecke, einschließlich Passwörter, verwenden.
Im folgenden Beispiel generieren wir eine zufällige GUID (Globally Unique Identifier) mit [System.Guid]::NewGuid()
, konvertieren dann die generierte GUID in eine Zeichenfolgendarstellung und speichern sie in der Variablen $randomString
.
Beispielcode:
$randomString = [System.Guid]::NewGuid().ToString()
$randomString
Ausgabe:
de5881dc-a546-43da-9b89-0bae712406b1
Die Ausgabe wird eine zufällige Zeichenfolge generieren.
Verwenden Sie das Cmdlet Get-Random
mit Zeichensätzen, um zufällige Zeichenfolgen in PowerShell zu generieren
Sie können auch zufällige Zeichenfolgen generieren, indem Sie benutzerdefinierte Zeichensätze definieren und das Cmdlet Get-Random
verwenden. Diese Methode ermöglicht mehr Kontrolle über den verwendeten Zeichensatz für die zufälligen Zeichenfolgen.
Hier ist ein Beispiel.
Beispielcode:
$length = 10
$characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'.ToCharArray()
$randomString = -join ($characters | Get-Random -Count $length)
$randomString
Zuerst definieren wir die gewünschte Länge der zufälligen Zeichenfolge und speichern sie in einer Variablen $length
.
Dann definieren wir die Zeichen($characters
), aus denen die zufällige Zeichenfolge als Array von Zeichen generiert wird. Die Methode .ToCharArray()
konvertiert die Zeichenfolge in ein Array ihrer einzelnen Zeichen.
Als nächstes erstellen wir eine Zeichenfolge ($randomString
) der angegebenen Länge, indem wir zufällig Zeichen aus dem Zeichenarray auswählen, und die ausgewählten Zeichen werden zusammengefügt, um die endgültige zufällige Zeichenfolge zu bilden. Schließlich geben wir die generierte zufällige Zeichenfolge aus.
Ausgabe:
9lQSruF40i
Die Ausgabe wird eine zufällige Zeichenfolge erzeugen, indem sie die Zeichen im $characters
auswählt.
Fazit
Dieser Artikel stattet Sie mit einer Reihe von Methoden aus, um zufällige Zeichenfolgen in PowerShell zu generieren, sodass Sie das richtige Werkzeug für die Verwaltung einzigartiger Passwörter und anderer Aufgaben in Active Directory haben.
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedInVerwandter Artikel - PowerShell String
- Wie man die Position von Teilzeichenfolgen in PowerShell findet
- Wie man einen Text in einer Datei mit PowerShell ersetzt
- Überprüfen Sie, ob eine Zeichenfolge in PowerShell leer ist
- Wie man überprüft, ob eine Zeichenfolge NICHT NULL oder LEER in PowerShell ist
- Auswählen mehrerer Muster in einer Zeichenfolge mithilfe von PowerShell
- Ersetzen von Zeichenfolgen in PowerShell