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>]
Get-Random
   [-SetSeed <Int32>]
   [-InputObject] <Object[]>
   [-Shuffle]
   [<CommonParameters>]

Beschreibung

Das Get-Random Cmdlet ruft eine zufällig ausgewählte Zahl ab. Wenn Sie eine Auflistung von -Objekten an Get-Randomübermitteln, erhält sie ein oder mehrere zufällig ausgewählte Objekte aus der Auflistung.

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 (0x7FFFFFFF, 2,147,483,647) zurück.

Generiert standardmäßig Get-Random kryptografisch sichere Zufälligkeit mithilfe der RandomNumberGenerator-Klasse .

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 Startnummer anzugeben.

Achtung

Das Festlegen des Seed führt bewusst 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 .

Dieser 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.

Beispiele

Beispiel 1: Abrufen einer zufälligen ganzzahligen Zahl

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 ruft eine zufällige Gleitkommazahl ab, die größer oder gleich 10.7 und kleiner als 20.92 ist.

Get-Random -Minimum 10.7 -Maximum 20.93

18.08467273887

Beispiel 5: Abrufen einer zufälligen ganzen 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 zufälliger Ganzzahlen aus einem Array

Mit diesem Befehl werden drei zufällig ausgewählte Zahlen in zufälliger Reihenfolge aus einem Array abgerufen.

1, 2, 3, 5, 8, 13 | Get-Random -Count 3

3
1
13

Beispiel 7: Randomisieren einer gesamten Sammlung

Ab PowerShell 7.1 können Sie den Shuffle-Parameter verwenden, um die gesamte Sammlung 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 zufälligen Wert aus einer nicht numerischen Auflistung zurück.

"red", "yellow", "blue" | Get-Random

yellow

Beispiel 9: Verwenden des SetSeed-Parameters

Dieses Beispiel zeigt die Auswirkungen der Verwendung des SetSeed-Parameters.

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

74
56
84
46

# Commands with the same seed are not random
Get-Random -Maximum 100 -SetSeed 23
Get-Random -Maximum 100 -SetSeed 23
Get-Random -Maximum 100 -SetSeed 23

74
74
74

# SetSeed results in a repeatable series
Get-Random -Maximum 100 -SetSeed 23
Get-Random -Maximum 100
Get-Random -Maximum 100
Get-Random -Maximum 100

74
56
84
46

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: Fair-Würfel

In diesem Beispiel wird ein Fair-Würfel 1200 Mal rollt und die Ergebnisse zählen. Mit dem ersten Befehl wird der Aufruf Get-Random von von wiederholt, ForEach-Object der in Zahlen (1-6) übergeben wurde. 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 Count-Parameter verwenden, ohne Objekte an zu pipingen Get-Random. Im folgenden Beispiel werden drei Zufallszahlen kleiner als 10 abgerufen.

Get-Random -Count 3 -Maximum 10

9
0
8

Beispiel 13: Verwenden Sie den InputObject-Parameter mit einer leeren Zeichenfolge oder $null

In diesem Beispiel gibt der InputObject-Parameter ein Array an, das eine leere Zeichenfolge ('') und $nullenthält.

Get-Random -InputObject @('a','',$null)

Get-Random gibt entweder aeine leere Zeichenfolge oder $nullzurück. Der leere Sting wird als leere Zeile angezeigt und $null kehrt zu einer PowerShell-Eingabeaufforderung zurück.

Parameter

-Count

Gibt die Anzahl zufälliger Objekte oder Zahlen an, die zurückgegeben werden sollen. Der Standardwert ist 1.

Wenn mit InputObjectverwendet wird, wenn der Wert von Count die Anzahl der Objekte in der Auflistung überschreitet, Get-Random gibt alle Objekte in zufälliger Reihenfolge zurück.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 übergeben Get-Random.

Ab PowerShell 7 akzeptiert der InputObject-Parameter Arrays, die eine leere Zeichenfolge oder $nullenthalten können. Das Array kann über die Pipeline oder als InputObject-Parameterwert gesendet werden.

Type:Object[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Maximum

Gibt einen maximalen Wert für die Zufallszahl an. Get-Random gibt einen Wert zurück, der kleiner als das Maximum (nicht gleich) ist. 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 sein als der Wert von Minimum (ungleich). Wenn der Wert von Maximum oder Minimum eine Gleitkommazahl ist, Get-Random gibt eine zufällig ausgewählte Gleitkommazahl zurück.

Wenn der Wert von Minimum auf einem 64-Bit-Computer eine 32-Bit-Ganzzahl ist, ist der Standardwert von MaximumInt32.MaxValue.

Wenn der Wert von Minimum ein Double ist (eine Gleitkommazahl), ist der Standardwert von MaximumDouble.MaxValue. Andernfalls ist der Standardwert Int32.MaxValue.

Type:Object
Position:0
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 sein als der Wert von Maximum (ungleich). Wenn der Wert von Maximum oder Minimum eine Gleitkommazahl ist, Get-Random gibt eine zufällig ausgewählte Gleitkommazahl zurück.

Type:Object
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SetSeed

Gibt einen Ausgangswert für den Zufallszahlengenerator an. Wenn Sie SetSeed verwenden, verwendet das Cmdlet die System.Random-Methode , um Pseudorandomzahlen zu generieren, die kryptografisch nicht sicher ist.

Achtung

Das Festlegen des Seed 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 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.

Type:Nullable<T>[Int32]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Shuffle

Gibt die gesamte Auflistung in einer zufälligen Reihenfolge zurück.

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

Eingaben

Object

Sie können ein oder mehrere Objekte pipen. Get-Random wählt Nach dem Zufallsprinzip Werte aus den übergebenen Objekten aus.

Ausgaben

System.Int32, System.Int64, System.Double

Get-Random gibt eine ganze Zahl oder Gleitkommazahl oder ein zufällig aus einer übermittelten Auflistung ausgewähltes Objekt zurück.

Hinweise

Generiert standardmäßig Get-Random kryptografisch sichere Zufälligkeit mithilfe der RandomNumberGenerator-Klasse .

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 unterstützt 64-Bit-Ganzzahlen. In Windows PowerShell 2.0 werden alle Werte in System.Int32 umgewandelt.

Ab PowerShell 7 akzeptiert der InputObject-Parameter im Parametersatz RandomListItemParameterSet Arrays, die eine leere Zeichenfolge oder $nullenthalten. In früheren PowerShell-Versionen akzeptierte nur der Parameter Maximum im Parametersatz RandomNumberParameterSet eine leere Zeichenfolge oder $null.