Condividi tramite


Get-SecureRandom

Ottiene un numero casuale o seleziona oggetti in modo casuale da una raccolta.

Sintassi

RandomNumberParameterSet (impostazione predefinita).

Get-SecureRandom
    [[-Maximum] <Object>]
    [-Minimum <Object>]
    [-Count <Int32>]
    [<CommonParameters>]

RandomListItemParameterSet

Get-SecureRandom
    [-InputObject] <Object[]>
    [-Count <Int32>]
    [<CommonParameters>]

ShuffleParameterSet

Get-SecureRandom
    [-InputObject] <Object[]>
    [-Shuffle]
    [<CommonParameters>]

Descrizione

Il cmdlet Get-SecureRandom ottiene un numero selezionato in modo casuale. Se si invia una raccolta di oggetti a Get-SecureRandom, ottiene uno o più oggetti selezionati in modo casuale dall'insieme.

Senza parametri o input, un comando Get-SecureRandom restituisce un intero senza segno a 32 bit selezionato in modo casuale tra 0 (zero) e [int32]::MaxValue.

È possibile utilizzare i parametri di Get-SecureRandom per specificare i valori minimo e massimo e il numero di oggetti restituiti da una raccolta.

Get-SecureRandom genera casualità crittograficamente sicura usando la classe RandomNumberGenerator.

Esempio

Esempio 1: Ottenere un numero intero casuale

Questo comando ottiene un numero intero casuale compreso tra 0 (zero) e Int32.MaxValue.

Get-SecureRandom
3951433

Esempio 2: Ottenere un numero intero casuale compreso tra 0 e 99

Get-SecureRandom -Maximum 100
47

Esempio 3: Ottenere un numero intero casuale tra -100 e 99

Get-SecureRandom -Minimum -100 -Maximum 100
56

Esempio 4: Ottenere un numero a virgola mobile casuale

Questo comando ottiene un numero a virgola mobile casuale maggiore o uguale a 10,7 e minore di 20,93.

Get-SecureRandom -Minimum 10.7 -Maximum 20.93
18.08467273887

Esempio 5: Ottenere un numero intero casuale da una matrice

Questo comando ottiene un numero selezionato in modo casuale dalla matrice specificata.

1, 2, 3, 5, 8, 13 | Get-SecureRandom
8

Esempio 6: Ottenere diversi numeri interi casuali da una matrice

Questo comando ottiene tre numeri selezionati in modo casuale in ordine casuale da una matrice.

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

Esempio 7: Randomizzare un'intera raccolta

È possibile usare il parametro shuffle per restituire l'intera raccolta in un ordine casuale.

1, 2, 3, 5, 8, 13 | Get-SecureRandom -Shuffle
2
3
5
1
8
13

Esempio 8: Ottenere un valore non numerico casuale

Questo comando restituisce un valore casuale da una raccolta non numerica.

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

Esempio 9: Ottenere file casuali

Questi comandi ottengono un campione selezionato in modo casuale di 50 file dall'unità C: del computer locale.

$Files = Get-ChildItem -Path C:\* -Recurse
$Sample = $Files | Get-SecureRandom -Count 50

Esempio 10: Roll fair dadi

In questo esempio viene eseguito il rollback di un die 1200 volte e vengono conteggiato i risultati. Il primo comando, ForEach-Object ripete la chiamata a Get-SecureRandom dal piped in numeri (1-6). I risultati vengono raggruppati per valore con Group-Object e formattati come tabella con Select-Object.

1..1200 | ForEach-Object {
    1..6 | Get-SecureRandom
} | Group-Object | Select-Object Name,Count
Name Count
---- -----
1      206
2      199
3      196
4      226
5      185
6      188

Esempio 11: Usare il parametro Count

È possibile usare il parametro Count senza eseguire il piping degli oggetti per Get-SecureRandom. L'esempio seguente ottiene tre numeri casuali minori di 10.

Get-SecureRandom -Count 3 -Maximum 10
9
0
8

Esempio 12: Usare il parametro InputObject con una stringa vuota o $null

In questo esempio, il parametro InputObject specifica una matrice contenente una stringa vuota ('') e $null.

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

Get-SecureRandom restituisce astringa vuota o $null. La stringa vuota viene visualizzata come riga vuota e $null torna a un prompt di PowerShell.

Parametri

-Count

Specifica il numero di oggetti casuali da restituire. Il valore predefinito è 1.

Se usato con InputObject contenente una raccolta:

  • Ogni elemento selezionato in modo casuale viene restituito una sola volta.
  • Se il valore di Count supera il numero di oggetti nell'insieme, tutti gli oggetti dell'insieme vengono restituiti in ordine casuale.

Proprietà dei parametri

Tipo:Int32
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

RandomNumberParameterSet
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False
RandomListItemParameterSet
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-InputObject

Specifica una raccolta di oggetti . Get-SecureRandom ottiene oggetti selezionati in modo casuale dall'insieme fino al numero specificato da Count. Immettere gli oggetti, una variabile che contiene gli oggetti o un comando o un'espressione che ottiene gli oggetti . È anche possibile inviare tramite pipe una raccolta di oggetti a Get-SecureRandom.

Il parametro InputObject accetta matrici che possono contenere una stringa vuota o $null. La matrice può essere inviata verso il basso della pipeline o come valore del parametro InputObject.

Proprietà dei parametri

Tipo:

Object[]

Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

RandomListItemParameterSet
Posizione:0
Obbligatorio:True
Valore dalla pipeline:True
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False
ShuffleParameterSet
Posizione:0
Obbligatorio:True
Valore dalla pipeline:True
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Maximum

Specifica un valore massimo per il numero casuale. Get-SecureRandom restituisce un valore minore del valore massimo (diverso da). Immettere un numero intero, un numero a virgola mobile e precisione doppia o un oggetto che può essere convertito in un numero intero o doppio, ad esempio una stringa numerica ("100").

Il valore di massimo deve essere maggiore (diverso da) il valore di Minimo. Se il valore di massimo o minimo è un numero a virgola mobile, Get-SecureRandom restituisce un numero a virgola mobile selezionato in modo casuale.

In un computer a 64 bit, se il valore di minimum è un intero a 32 bit, il valore predefinito di Maximum è Int32.MaxValue.

Se il valore di Minimum è double (un numero a virgola mobile), il valore predefinito di Maximum è Double.MaxValue. In caso contrario, il valore predefinito è Int32.MaxValue.

Proprietà dei parametri

Tipo:Object
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

RandomNumberParameterSet
Posizione:0
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Minimum

Specifica un valore minimo per il numero casuale. Immettere un numero intero, un numero a virgola mobile e precisione doppia o un oggetto che può essere convertito in un numero intero o doppio, ad esempio una stringa numerica ("100"). Il valore predefinito è 0 (zero).

Il valore di Minimo deve essere minore (diverso da) il valore di Massimo. Se il valore di massimo o minimo è un numero a virgola mobile, Get-SecureRandom restituisce un numero a virgola mobile selezionato in modo casuale.

Proprietà dei parametri

Tipo:Object
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

RandomNumberParameterSet
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Shuffle

Restituisce l'intera raccolta in un ordine casuale.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

ShuffleParameterSet
Posizione:Named
Obbligatorio:True
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

CommonParameters

Questo cmdlet supporta i parametri comuni: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Per altre informazioni, vedi about_CommonParameters.

Input

Object

È possibile passare qualsiasi oggetto come input a questo cmdlet. Seleziona i valori in modo casuale dagli oggetti inviati tramite pipe.

Output

Int32

Int64

Double

PSObject

Questo cmdlet restituisce un numero intero o a virgola mobile o un oggetto selezionato in modo casuale da una raccolta inviata.

Note

Get-SecureRandom non restituisce sempre lo stesso tipo di dati del valore di input. Nella tabella seguente viene illustrato il tipo di output per ognuno dei tipi di input numerici.

Tipo di input Tipo di output
SByte Doppio
Byte Doppio
Int16 Doppio
UInt16 Doppio
Int32 Int32
UInt32 Doppio
Int64 Int64
UInt64 Doppio
Doppio Doppio
Singolo Doppio