Get-Random
Ottiene un numero casuale o seleziona gli oggetti da una raccolta in modo casuale.
Sintassi
Get-Random [-InputObject] <Object[]> [-Count <int>] [-SetSeed <int>] [<CommonParameters>]
Get-Random [[-Maximum] <Object>] [-Minimum <Object>] [-SetSeed <int>] [<CommonParameters>]
Descrizione
Il cmdlet Get-Random ottiene un numero selezionato casualmente. Se si invia una raccolta di oggetti a Get-Random, si ottengono uno o più oggetti selezionati casualmente dalla raccolta.
Senza parametri o input, un comando Get-Random restituisce un valore intero senza segno a 32 bit selezionato casualmente tra 0 (zero) e Int32.MaxValue (0x7FFFFFFF, 2,147,483,647).
È possibile utilizzare i parametri di Get-Random per specificare un numero di valore iniziale, i valori minimo e massimo e il numero di oggetti restituiti da una raccolta inviata.
Parametri
-Count <int>
Determina quanti oggetti vengono restituiti. Il valore predefinito è 1. Se il valore di Count supera il numero di oggetti nella raccolta, Get-Random restituisce tutti gli oggetti in ordine casuale.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
1 |
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-InputObject <Object[]>
Specifica una raccolta di oggetti. Get-Random ottiene oggetti selezionati casualmente dalla raccolta. Immettere gli oggetti, una variabile contenente gli oggetti oppure un comando o un'espressione che consente di ottenere gli oggetti. È inoltre possibile reindirizzare una raccolta di oggetti a Get-Random.
Obbligatorio? |
true |
Posizione? |
1 |
Valore predefinito |
|
Accettare input da pipeline? |
true (ByValue) |
Accettare caratteri jolly? |
false |
-Maximum <Object>
Specifica un valore massimo per il numero casuale. Get-Random restituisce un valore minore del valore massimo (non uguale). Immettere un valore intero a 32 bit o un numero a virgola mobile a precisione doppia o un oggetto che può essere convertito in valore intero o doppio, ad esempio una stringa numerica ("100"). Il valore massimo deve essere superiore (non uguale) al valore minimo.
Se il valore massimo o quello minimo è un numero a virgola mobile, Get-Random restituisce un numero a virgola mobile selezionato casualmente.
Se il valore minimo è doppio (numero a virgola mobile), il valore massimo predefinito è Double.MaxValue. Altrimenti, il valore predefinito è Int32.MaxValue (2,147,483,647 o 0x7FFFFFFF).
Obbligatorio? |
false |
Posizione? |
1 |
Valore predefinito |
Int32.MaxValue |
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-Minimum <Object>
Specifica un valore minimo per il numero casuale. Immettere un valore intero a 32 bit o un numero a virgola mobile a precisione doppia o un oggetto che può essere convertito in valore intero o doppio, ad esempio una stringa numerica ("100"). Il valore predefinito è 0 (zero).
Il valore minimo deve essere inferiore (non uguale) al valore massimo. Se il valore massimo o quello minimo è un numero a virgola mobile, Get-Random restituisce un numero a virgola mobile selezionato casualmente.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
0 |
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-SetSeed <int>
Specifica un valore iniziale per il generatore di numeri casuali. Questo valore viene utilizzato per il comando corrente e per tutti i comandi Get-Random successivi nella sessione corrente finché non si utilizza nuovamente SetSeed o non si chiude la sessione. Non è possibile reimpostare il valore iniziale predefinito, basato sul clock.
Il parametro SetSeed non è obbligatorio. Per impostazione predefinita, Get-Random utilizza il clock di sistema per generare un valore iniziale. Poiché SetSeed ha un comportamento non casuale, viene utilizzato in genere solo quando si tenta di riprodurre un comportamento, ad esempio quando si esegue il debug o l'analisi di uno script che include comandi Get-Random.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
System clock |
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
<CommonParameters>
Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.
Input e output
Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.
Input |
System.Object È possibile reindirizzare uno o più oggetti a Get-Random. Get-Random seleziona casualmente i valori dagli oggetti reindirizzati. |
Output |
System.Object Get-Random restituisce un valore intero o un numero a virgola mobile oppure un oggetto selezionato casualmente da una raccolta inviata. |
Note
Get-Random imposta un valore iniziale predefinito per ogni sessione in base al clock di sistema all'avvio della sessione.
Esempio 1
C:\PS>get-random
3951433
Descrizione
-----------
Con questo comando si ottiene un valore intero casuale compreso tra 0 (zero) e Int32.MaxValue.
Esempio 2
C:\PS>get-random -maximum 100
47
Descrizione
-----------
Con questo comando si ottiene un valore intero casuale compreso tra 0 (zero) e 99.
Esempio 3
C:\PS>get-random -minimum -100 -maximum 100
-56
Descrizione
-----------
Questo comando ottiene un valore intero casuale compreso tra -100 e 99.
Esempio 4
C:\PS>get-random -min 10.7 -max 20.93
18.08467273887
Descrizione
-----------
Questo comando ottiene un numero a virgola mobile casuale maggiore o uguale a 10,7 e minore di 20,92.
Esempio 5
C:\PS>get-random -input 1, 2, 3, 5, 8, 13
8
Descrizione
-----------
Questo comando ottiene un numero selezionato casualmente dalla matrice specificata.
Esempio 6
C:\PS>get-random -input 1, 2, 3, 5, 8, 13 -count 3
3
1
13
Descrizione
-----------
Questo comando ottiene tre numeri selezionati casualmente dalla matrice in ordine casuale.
Esempio 7
C:\PS>get-random -input 1, 2, 3, 5, 8, 13 -count ([int]::MaxValue)
2
3
5
1
8
13
Descrizione
-----------
Questo comando restituisce l'intera raccolta in ordine casuale. Il valore del parametro Count è la proprietà statica MaxValue dei valori interi.
Per restituire un'intera raccolta in ordine casuale, immettere qualsiasi numero maggiore o uguale al numero di oggetti nella raccolta.
Esempio 8
C:\PS>get-random -input "red", "yellow", "blue"
yellow
Descrizione
-----------
Questo comando restituisce un valore casuale da una raccolta non numerica.
Esempio 9
C:\PS>get-process | get-random
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
144 4 2080 488 36 0.48 3164 wmiprvse
Descrizione
-----------
Questo comando ottiene un processo selezionato casualmente dalla raccolta di processi nel computer.
Esempio 10
C:\PS>get-content servers.txt | get-random -count (get-content servers.txt).count | foreach {invoke-expression -computer $_ -command 'get-process powershell'}
Descrizione
-----------
Questo comando esegue un comando in una serie di computer remoti in ordine casuale.
Esempio 11
C:\PS>get-random -max 100 -setseed 23
# Commands with the default seed are pseudorandom
PS C:\ps-test> get-random -max 100
59
PS C:\ps-test> get-random -max 100
65
PS C:\ps-test> get-random -max 100
21
# Commands with the same seed are not random
PS C:\ps-test> get-random -max 100 -setseed 23
74
PS C:\ps-test> get-random -max 100 -setseed 23
74
PS C:\ps-test> get-random -max 100 -setseed 23
74
# SetSeed results in a repeatable series
PS C:\ps-test> get-random -max 100 -setseed 23
74
PS C:\ps-test> get-random -max 100
56
PS C:\ps-test> get-random -max 100
84
PS C:\ps-test> get-random -max 100
46
PS C:\ps-test> get-random -max 100 -setseed 23
74
PS C:\ps-test> get-random -max 100
56
PS C:\ps-test> get-random -max 100
84
PS C:\ps-test> get-random -max 100
46
Descrizione
-----------
In questo esempio viene illustrato l'effetto dell'utilizzo del parametro SetSeed. Poiché SetSeed ha un comportamento non casuale, viene utilizzato in genere solo per riprodurre risultati, ad esempio quando si esegue il debug o l'analisi di uno script.
Esempio 12
C:\PS>$files = dir -path c:\* -recurse
C:\PS> $sample = $files | get-random -count 50
Descrizione
-----------
Questi comandi ottengono un campione di 50 file selezionati casualmente dall'unità C: del computer locale.
Esempio 13
C:\PS>get-random 10001
7600
Descrizione
-----------
Questo comando ottiene un valore intero casuale minore di 10001. Poiché il parametro Maximum è in posizione 1, è possibile omettere il nome del parametro quando il valore è il primo o l'unico parametro senza nome nel comando.