Get-Random
Ruft eine Zufallszahl ab, oder wählt Objekte zufällig aus einer Auflistung aus.
Syntax
RandomNumberParameterSet (Standardwert)
Get-Random
[[-Maximum] <Object>]
[-SetSeed <Int32>]
[-Minimum <Object>]
[-Count <Int32>]
[<CommonParameters>]
RandomListItemParameterSet
Get-Random
[-InputObject] <Object[]>
[-SetSeed <Int32>]
[-Count <Int32>]
[<CommonParameters>]
ShuffleParameterSet
Get-Random
[-InputObject] <Object[]>
[-SetSeed <Int32>]
[-Shuffle]
[<CommonParameters>]
Beschreibung
Das Cmdlet Get-Random ruft eine zufällig ausgewählte Zahl ab. Wenn Sie eine Auflistung von Objekten an Get-Randomübermitteln, ruft sie ein oder mehrere zufällig ausgewählte Objekte aus der Auflistung ab.
Ohne Parameter oder Eingabe gibt ein Get-Random-Befehl eine zufällig ausgewählte 32-Bit-Ganzzahl ohne Vorzeichen zwischen 0 (Null) und [int32]::MaxValuezurück.
Sie können die Parameter von Get-Random verwenden, um die Mindest- und Höchstwerte, die Anzahl der von einer Auflistung zurückgegebenen Objekte oder eine Ausgangszahl anzugeben.
Vorsicht
Get-Random stellt keine kryptografische Zufälligkeit sicher. Der Startwert wird für den aktuellen Befehl und für alle nachfolgenden Get-Random Befehle in der aktuellen Sitzung verwendet, bis Sie SetSeed erneut verwenden oder die Sitzung schließen. Sie können den Seed nicht auf den Standardwert zurücksetzen.
Das absichtliche Festlegen des Ausgangswerts führt zu einem nicht zufälligen, wiederholbaren Verhalten. Es sollte nur verwendet werden, wenn versucht wird, verhalten zu reproduzieren, z. B. beim Debuggen oder Analysieren eines Skripts, das Get-Random Befehle enthält. Beachten Sie, dass der Seedwert von einem anderen Code in derselben Sitzung festgelegt werden kann, z. B. ein importiertes Modul.
PowerShell 7.4 enthält Get-SecureRandom-, das kryptografisch sichere Zufallszahlen gewährleistet.
Beispiele
Beispiel 1: Erhalten einer zufälligen Ganzzahl
Dieser Befehl ermittelt eine zufällige Ganzzahl zwischen 0 (Null) und Int32.MaxValue.
Get-Random
3951433
Beispiel 2: Abrufen einer zufälligen Ganzzahl zwischen 0 und 99
Get-Random -Maximum 100
47
Beispiel 3: Abrufen einer zufälligen Ganzzahl zwischen -100 und 99
Get-Random -Minimum -100 -Maximum 100
56
Beispiel 4: Abrufen einer zufälligen Gleitkommazahl
Dieser Befehl liefert eine zufällige Gleitkommazahl größer oder gleich 10,7 und kleiner als 20,93.
Get-Random -Minimum 10.7 -Maximum 20.93
18.08467273887
Beispiel 5: Eine zufällige ganze Zahl aus einem Array abrufen
Dieser Befehl ruft eine zufällig ausgewählte Zahl aus dem angegebenen Array ab.
1, 2, 3, 5, 8, 13 | Get-Random
8
Beispiel 6: Erhalten mehrerer ganzzahliger Zufallszahlen aus einem Array
Dieser Befehl ruft drei zufällig ausgewählte Zahlen in zufälliger Reihenfolge aus einem Array ab.
1, 2, 3, 5, 8, 13 | Get-Random -Count 3
3
1
13
Beispiel 7: Randomisieren einer gesamten Auflistung
Ab PowerShell 7.1 können Sie den Shuffle--Parameter verwenden, um die gesamte Auflistung in einer zufälligen Reihenfolge zurückzugeben.
1, 2, 3, 5, 8, 13 | Get-Random -Shuffle
2
3
5
1
8
13
Beispiel 8: Abrufen eines zufälligen nicht numerischen Werts
Dieser Befehl gibt einen Zufallswert aus einer nicht numerischen Auflistung zurück.
"red", "yellow", "blue" | Get-Random
yellow
Beispiel 9: Verwenden des SetSeed-Parameters
In diesem Beispiel wird der Effekt der Verwendung des SetSeed--Parameters veranschaulicht.
Da SetSeed- nicht zufälliges Verhalten erzeugt, wird es in der Regel nur zum Reproduzieren von Ergebnissen verwendet, z. B. beim Debuggen oder Analysieren eines Skripts.
# Commands with the default seed are pseudorandom
Get-Random -Maximum 100 -SetSeed 23
Get-Random -Maximum 100
Get-Random -Maximum 100
Get-Random -Maximum 100
32
25
93
95
# Commands with the same seed aren't random
Get-Random -Maximum 100 -SetSeed 23
Get-Random -Maximum 100 -SetSeed 23
Get-Random -Maximum 100 -SetSeed 23
32
32
32
# SetSeed results in a repeatable series
Get-Random -Maximum 100 -SetSeed 23
Get-Random -Maximum 100
Get-Random -Maximum 100
Get-Random -Maximum 100
32
25
93
95
Beispiel 10: Abrufen zufälliger Dateien
Diese Befehle holen eine zufällige Auswahl von 50 Dateien aus dem C:-Laufwerk des lokalen Computers.
$Files = Get-ChildItem -Path C:\* -Recurse
$Sample = $Files | Get-Random -Count 50
Beispiel 11: Rollen fairer Würfel
In diesem Beispiel wird ein Würfel 1200 Mal geworfen und die Ergebnisse werden gezählt. Der erste Befehl, ForEach-Object, wiederholt den Aufruf von Get-Random von den übergebenen Zahlen (1-6). Die Ergebnisse werden nach ihrem Wert mit Group-Object gruppiert und als Tabelle mit Select-Objectformatiert.
1..1200 | ForEach-Object {
1..6 | Get-Random
} | Group-Object | Select-Object Name,Count
Name Count
---- -----
1 206
2 199
3 196
4 226
5 185
6 188
Beispiel 12: Verwenden des Count-Parameters
Sie können jetzt den Parameter Count verwenden, ohne Objekte zu Get-Random.
Das folgende Beispiel ruft drei Zufallszahlen ab, die kleiner als 10 sind.
Get-Random -Count 3 -Maximum 10
9
0
8
Beispiel 13: Verwenden des InputObject-Parameters mit einer leeren Zeichenfolge oder $null
In diesem Beispiel gibt der parameter InputObject ein Array an, das eine leere Zeichenfolge ('') und $nullenthält.
Get-Random -InputObject @('a','',$null)
Get-Random gibt entweder a, einen leeren String oder $nullzurück. Die leere Zeichenfolge wird als leere Zeile angezeigt und $null kehrt zu einer PowerShell-Eingabeaufforderung zurück.
Parameter
-Count
Gibt die Anzahl zufälliger Objekte an, die zurückgegeben werden sollen. Der Standardwert ist 1.
Bei Verwendung mit InputObject mit einer Sammlung:
- Jedes zufällig ausgewählte Element wird nur einmal zurückgegeben.
- Wenn der Wert von Count die Anzahl der Objekte in der Auflistung überschreitet, werden alle Objekte in der Auflistung in zufälliger Reihenfolge zurückgegeben.
Parametereigenschaften
| Typ: | Int32 |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
RandomNumberParameterSet
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
RandomListItemParameterSet
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-InputObject
Spezifiziert eine Sammlung von Objekten.
Get-Random ruft eine zufällige Anzahl von Objekten in zufälliger Reihenfolge aus der Sammlung ab, bis zur durch Count angegebenen Zahl. Geben Sie die Objekte ein, eine Variable, die die Objekte enthält, oder einen Befehl oder Ausdruck zum Abrufen der Objekte. Sie können auch eine Sammlung von Objekten an Get-Random weiterleiten.
Ab PowerShell 7 akzeptiert der parameter InputObject Arrays, die eine leere Zeichenfolge oder $nullenthalten können. Das Array kann in die Pipeline oder als Parameterwert des InputObject gesendet werden.
Parametereigenschaften
| Typ: | Object[] |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
RandomListItemParameterSet
| Position: | 0 |
| Obligatorisch.: | True |
| Wert aus Pipeline: | True |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
ShuffleParameterSet
| Position: | 0 |
| Obligatorisch.: | True |
| Wert aus Pipeline: | True |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Maximum
Gibt einen Maximalwert für die Zufallszahl an.
Get-Random gibt einen Wert zurück, der kleiner als der Maximalwert ist (nicht gleich). Geben Sie eine ganze Zahl, eine Gleitkommazahl mit doppelter Genauigkeit oder ein Objekt ein, das in eine ganze Zahl oder ein Double konvertiert werden kann, z. B. eine numerische Zeichenfolge ("100").
Der Wert von Maximum muss größer als (ungleich) dem Wert von Minimum sein. Wenn der Wert von Maximum oder Minimum eine Gleitkommazahl ist, gibt Get-Random eine zufällig ausgewählte Gleitkommazahl zurück.
Wenn auf einem 64-Bit-Computer der Wert von Minimum eine 32-Bit-Ganzzahl ist, ist der Standardwert von MaximumInt32.MaxValue.
Wenn der Wert von Minimum ein Double (eine Gleitkommazahl) ist, liegt der Standardwert von Maximum bei Double.MaxValue. Andernfalls ist der Standardwert Int32.MaxValue.
Parametereigenschaften
| Typ: | Object |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
RandomNumberParameterSet
| Position: | 0 |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Minimum
Gibt einen Minimalwert für die Zufallszahl an. Geben Sie eine ganze Zahl, eine Gleitkommazahl mit doppelter Genauigkeit oder ein Objekt ein, das in eine ganze Zahl oder ein Double konvertiert werden kann, z. B. eine numerische Zeichenfolge ("100"). Der Standardwert ist 0 (Null).
Der Wert von Minimum muss kleiner (nicht gleich) als der Wert von Maximumsein. Wenn der Wert von Maximum oder Minimum eine Gleitkommazahl ist, gibt Get-Random eine zufällig ausgewählte Gleitkommazahl zurück.
Parametereigenschaften
| Typ: | Object |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
RandomNumberParameterSet
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-SetSeed
Gibt einen Ausgangswert für den Zufallszahlengenerator an. Wenn Sie SetSeed-verwenden, generiert das Cmdlet Pseudorandomnummern, die nicht kryptografisch sicher sind.
Vorsicht
Das Festlegen des Ausgangswerts führt zu einem nicht zufälligen Verhalten. Es sollte nur verwendet werden, wenn versucht wird, verhalten zu reproduzieren, z. B. beim Debuggen oder Analysieren eines Skripts, das Get-Random Befehle enthält.
Dieser Startwert wird für den aktuellen Befehl und für alle nachfolgenden Get-Random Befehle in der aktuellen Sitzung verwendet, bis Sie SetSeed erneut verwenden oder die Sitzung schließen. Sie können den Seed nicht auf den Standardwert zurücksetzen.
Parametereigenschaften
| Typ: | |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Shuffle
Gibt die gesamte Auflistung in einer zufälligen Reihenfolge zurück.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
ShuffleParameterSet
| Position: | Named |
| Obligatorisch.: | True |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
CommonParameters
Dieses Cmdlet unterstützt die allgemeinen Parameter -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction und -WarningVariable. Weitere Informationen findest du unter about_CommonParameters.
Eingaben
Object
Sie können jedes Objekt an dieses Cmdlet weiterleiten. Sie wählt Werte zufällig aus den weitergeleiteten Objekten aus.
Ausgaben
Int32
Int64
Double
PSObject
Dieses Cmdlet gibt eine ganze Zahl oder eine Gleitkommazahl oder ein Objekt zurück, das zufällig aus einer übermittelten Auflistung ausgewählt wurde.
Hinweise
Get-Random gibt nicht immer denselben Datentyp wie der Eingabewert zurück. Die folgende Tabelle zeigt den Ausgabetyp für jeden numerischen Eingabetyp.
| Eingabetyp | Ausgabetyp |
|---|---|
| SByte | Doppelt |
| Byte | Doppelt |
| Int16 | Doppelt |
| UInt16 | Doppelt |
| Int32 | Int32 |
| UInt32 | Doppelt |
| Int64 | Int64 |
| UInt64 | Doppelt |
| Doppelt | Doppelt |
| Ledig | Doppelt |
Ab Windows PowerShell 3.0 unterstützt Get-Random 64-Bit-Ganzzahlen. In Windows PowerShell 2.0 werden alle Werte in System.Int32umgerechnet.
Ab PowerShell 7 akzeptiert der parameter InputObject im RandomListItemParameterSet Parametersatz Arrays, die eine leere Zeichenfolge oder $nullenthalten. In früheren PowerShell-Versionen akzeptierte nur der parameter Maximum im RandomNumberParameterSet Parametersatz eine leere Zeichenfolge oder $nullfestgelegt wurde.