Get-Random
Ruft eine Zufallszahl ab oder wählt Objekte nach dem Zufallsprinzip aus einer Auflistung aus.
Syntax
Get-Random
[-SetSeed <Int32>]
[[-Maximum] <Object>]
[-Minimum <Object>]
[-Count <Int32>]
[<CommonParameters>]
Get-Random
[-SetSeed <Int32>]
[-InputObject] <Object[]>
[-Count <Int32>]
[<CommonParameters>]
Beschreibung
Das Get-Random
Cmdlet ruft eine zufällig ausgewählte Zahl ab. Wenn Sie eine Auflistung von Objekten Get-Random
an ü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]::MaxValue
.
Mit den Parametern Get-Random
können Sie die Mindest- und Höchstwerte, die Anzahl der von einer Auflistung zurückgegebenen Objekte oder eine Ausgangszahl angeben.
Achtung
Get-Random
stellt keine kryptografische Zufälligkeit sicher. Der Seedwert 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 Befehle enthält Get-Random
. 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
, die kryptografisch sichere Zufallszahlen gewährleistet.
Beispiele
Beispiel 1: Abrufen einer ganzzahligen Zufallszahl
Dieser Befehl ruft eine zufällige ganze Zahl zwischen 0 (Null) und Int32.MaxValue ab.
Get-Random
3951433
Beispiel 2: Abrufen einer zufälligen ganzen Zahl zwischen 0 und 99
Get-Random -Maximum 100
47
Beispiel 3: Abrufen einer zufälligen ganzen Zahl zwischen -100 und 99
Get-Random -Minimum -100 -Maximum 100
56
Beispiel 4: Abrufen einer zufälligen Gleitkommazahl
Dieser Befehl erhält 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: Abrufen einer zufallszahligen Zahl aus einem Array
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: Abrufen 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
Dieser Befehl gibt die gesamte Auflistung in zufälliger Reihenfolge zurück.
Der Wert des Count-Parameters ist die statische MaxValue-Eigenschaft von ganzen Zahlen.
Um eine ganze Auflistung in zufälliger Reihenfolge zurückgegeben, geben Sie eine Zahl ein, die größer oder gleich der Anzahl der Objekte in der Auflistung ist.
1, 2, 3, 5, 8, 13 | Get-Random -Count ([int]::MaxValue)
2
3
5
1
8
13
Beispiel 8: Abrufen eines zufälligen nicht numerischen Werts
Dieser Befehl gibt einen zufälligen Wert 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 verwendet, um Ergebnisse zu reproduzieren, 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 erhalten ein zufällig ausgewähltes Beispiel von 50 Dateien vom 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 Fair-1200-Mal gerollt und die Ergebnisse zählt. Der erste Befehl ForEach-Object
wiederholt den Aufruf Get-Random
von der weitergeleiteten Nummer (1-6). Die Ergebnisse werden nach ihrem Wert gruppiert und Group-Object
als Tabelle formatiert mit Select-Object
.
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
Parameter
-Count
Gibt die Anzahl zufälliger Objekte an, die zurückgegeben werden sollen. Der Standardwert ist 1.
Bei Verwendung mit InputObject
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.
Typ: | Int32 |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-InputObject
Gibt eine Auflistung von Objekten an. Get-Random
ruft zufällig ausgewählte Objekte in zufälliger Reihenfolge von der Auflistung bis zur durch Count angegebenen Zahl ab. Geben Sie die Objekte, eine Variable, die die Objekte enthält, oder einen Befehl oder Ausdruck ein, der die Objekte abruft. Sie können auch eine Auflistung von Objekten an Get-Random
.
Typ: | Object[] |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-Maximum
Gibt einen maximalen Wert für die Zufallszahl an. Get-Random
gibt einen Wert zurück, der kleiner als das Maximum 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 des Maximums muss größer als (nicht gleich) dem Wert von Minimum sein. Wenn der Wert von Maximum oder Minimum eine Gleitkommazahl ist, Get-Random
wird eine zufällig ausgewählte Gleitkommazahl zurückgegeben.
Bei einem 64-Bit-Computer, wenn der Wert von Minimum eine 32-Bit-Ganzzahl ist, ist der Standardwert von Maximum Int32.MaxValue.
Wenn der Wert von Minimum ein Double (eine Gleitkommazahl) ist, ist der Standardwert von Maximum Double.MaxValue. Andernfalls lautet der Standardwert Int32.MaxValue.
Typ: | Object |
Position: | 0 |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Minimum
Gibt einen minimalen Wert 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 als (nicht gleich) dem Wert von "Maximum" entsprechen. Wenn der Wert von Maximum oder Minimum eine Gleitkommazahl ist, Get-Random
wird eine zufällig ausgewählte Gleitkommazahl zurückgegeben.
Typ: | Object |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-SetSeed
Gibt einen Ausgangswert für den Zufallszahlengenerator an. Wenn Sie SetSeed verwenden, generiert das Cmdlet Pseudorandomnummern, die nicht kryptografisch sicher sind.
Achtung
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 Befehle enthält Get-Random
.
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.
Typ: | Nullable<T>[Int32] |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
Eingaben
Sie können jedes Objekt an dieses Cmdlet weiterleiten. Sie wählt Werte zufällig aus den weitergeleiteten Objekten aus.
Ausgaben
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 | Double |
Byte | Double |
Int16 | Double |
UInt16 | Double |
Int32 | Int32 |
UInt32 | Double |
Int64 | Int64 |
UInt64 | Double |
Double | Double |
Single | Double |
Ab Windows PowerShell 3.0 Get-Random
werden 64-Bit-Ganzzahlen unterstützt.