Condividi tramite


Get-SecureRandom

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

Sintassi

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

Descrizione

Il Get-SecureRandom cmdlet 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 Get-SecureRandom comando 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 compreso 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 utilizzare 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 dalla pipe in numeri (1-6). I risultati vengono raggruppati in base al 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 di oggetti in 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-SecureRandomarestituisce , stringa vuota o $null. Lo sting vuoto viene visualizzato 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.
Tipo:Int32
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-InputObject

Specifica una raccolta di oggetti. Get-SecureRandom ottiene oggetti selezionati in modo casuale in ordine casuale dall'insieme fino al numero specificato da Count. Immettere gli oggetti, una variabile che contiene gli oggetti oppure 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 .

Tipo:Object[]
Posizione:0
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-Maximum

Specifica un valore massimo per il numero casuale. Get-SecureRandom restituisce un valore minore del valore massimo (non uguale). 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 Maximum deve essere maggiore di (diverso da) il valore di Minimum. Se il valore di Maximum o Minimum è 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 è un valore double (un numero a virgola mobile), il valore predefinito di Maximum è Double.MaxValue. In caso contrario, il valore predefinito è Int32.MaxValue.

Tipo:Object
Posizione:0
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly: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 Minimum deve essere minore (diverso da) il valore di Maximum. Se il valore di Maximum o Minimum è un numero a virgola mobile, Get-SecureRandom restituisce un numero a virgola mobile selezionato in modo casuale.

Tipo:Object
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Shuffle

Restituisce l'intera raccolta in un ordine casuale.

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

Input

Object

È possibile inviare tramite pipe qualsiasi oggetto 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 Double
Byte Double
Int16 Double
UInt16 Double
Int32 Int32
UInt32 Double
Int64 Int64
UInt64 Double
Double Double
Singola Double