Get-Random
Obtient un nombre aléatoire ou sélectionne des objets de façon aléatoire à partir d’une collection.
Syntaxe
Get-Random
[-SetSeed <Int32>]
[[-Maximum] <Object>]
[-Minimum <Object>]
[<CommonParameters>]
Get-Random
[-SetSeed <Int32>]
[-InputObject] <Object[]>
[-Count <Int32>]
[<CommonParameters>]
Description
L’applet de commande Get-Random
obtient un nombre sélectionné de manière aléatoire. Si vous envoyez une collection d’objets à Get-Random
, elle obtient un ou plusieurs objets sélectionnés de manière aléatoire à partir de la collection.
Sans paramètres ni entrée, une commande Get-Random
retourne un entier non signé 32 bits sélectionné de manière aléatoire entre 0 (zéro) et Int32.MaxValue (0x7FFFFFFF
, 2,147,483,647
).
Vous pouvez utiliser les paramètres de Get-Random
pour spécifier un nombre de départs, des valeurs minimales et maximales, ainsi que le nombre d’objets retournés à partir d’une collection envoyée.
Exemples
Exemple 1 : Obtenir un entier aléatoire
Cette commande obtient un entier aléatoire compris entre 0 (zéro) et Int32.MaxValue.
Get-Random
3951433
Exemple 2 : Obtenir un entier aléatoire compris entre 0 et 99
Get-Random -Maximum 100
47
Exemple 3 : Obtenir un entier aléatoire entre -100 et 99
Get-Random -Minimum -100 -Maximum 100
56
Exemple 4 : Obtenir un nombre à virgule flottante aléatoire
Cette commande obtient un nombre à virgule flottante aléatoire supérieur ou égal à 10,7 et inférieur à 20,92.
Get-Random -Minimum 10.7 -Maximum 20.93
18.08467273887
Exemple 5 : Obtenir un entier aléatoire à partir d’un tableau
Cette commande obtient un nombre sélectionné de manière aléatoire dans le tableau spécifié.
1, 2, 3, 5, 8, 13 | Get-Random
8
Exemple 6 : Obtenir plusieurs entiers aléatoires à partir d’un tableau
Cette commande obtient trois nombres sélectionnés de façon aléatoire dans un ordre aléatoire à partir d’un tableau.
1, 2, 3, 5, 8, 13 | Get-Random -Count 3
3
1
13
Exemple 7 : Aléatoirer une collection entière
Cette commande retourne l’intégralité de la collection dans l’ordre aléatoire.
La valeur du paramètre Count
Pour renvoyer une collection entière dans un ordre aléatoire, entrez un nombre supérieur ou égal au nombre d’objets de la collection.
1, 2, 3, 5, 8, 13 | Get-Random -Count ([int]::MaxValue)
2
3
5
1
8
13
Exemple 8 : Obtenir une valeur non numérique aléatoire
Cette commande retourne une valeur aléatoire d’une collection non numérique.
"red", "yellow", "blue" | Get-Random
yellow
Exemple 9 : Utiliser le paramètre SetSeed
Cet exemple montre l’effet de l’utilisation du paramètre de SetSeed
Étant donné que SetSeed produit un comportement non aléatoire, il est généralement utilisé uniquement pour reproduire les résultats, comme lors du débogage ou de l’analyse d’un script.
# 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
Exemple 10 : Obtenir des fichiers aléatoires
Ces commandes obtiennent un échantillon aléatoire de 50 fichiers à partir du lecteur C:
de l’ordinateur local.
$Files = Get-ChildItem -Path C:\* -Recurse
$Sample = $Files | Get-Random -Count 50
Exemple 11 : Roll fair dice
Cet exemple montre comment déployer une mort équitable 1200 fois et compter les résultats. La première commande, For-EachObject
répète l’appel à Get-Random
à partir du canal en nombres (1 à 6). Les résultats sont regroupés par leur valeur avec Group-Object
et mis en forme sous forme de tableau avec 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
Paramètres
-Count
Spécifie le nombre d’objets ou de nombres aléatoires à retourner. La valeur par défaut est 1.
Lorsqu’elle est utilisée avec InputObject
, si la valeur de Count dépasse le nombre d’objets de la collection, Get-Random
retourne tous les objets dans l’ordre aléatoire.
Type: | Int32 |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-InputObject
Spécifie une collection d’objets.
Get-Random
obtient des objets sélectionnés de manière aléatoire dans l’ordre aléatoire de la collection jusqu’au nombre spécifié par Nombre. Entrez les objets, une variable qui contient les objets, ou une commande ou une expression qui obtient les objets. Vous pouvez également diriger une collection d’objets vers Get-Random
.
Type: | Object[] |
Position: | 0 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-Maximum
Spécifie une valeur maximale pour le nombre aléatoire.
Get-Random
retourne une valeur inférieure à la valeur maximale (non égale). Entrez un entier, un nombre à virgule flottante double précision ou un objet pouvant être converti en entier ou double, tel qu’une chaîne numérique (« 100 »).
La valeur de maximale doit être supérieure (non égale à) à la valeur de minimum. Si la valeur de nombre maximal de ou minimum est un nombre à virgule flottante, Get-Random
retourne un nombre à virgule flottante sélectionné de manière aléatoire.
Sur un ordinateur 64 bits, si la valeur de Minimum est un entier 32 bits, la valeur par défaut de maximum est Int32.MaxValue.
Si la valeur de minimum est un double (nombre à virgule flottante), la valeur par défaut de maximale est Double.MaxValue. Sinon, la valeur par défaut est Int32.MaxValue.
Type: | Object |
Position: | 0 |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Minimum
Spécifie une valeur minimale pour le nombre aléatoire. Entrez un entier, un nombre à virgule flottante double précision ou un objet pouvant être converti en entier ou double, tel qu’une chaîne numérique (« 100 »). La valeur par défaut est 0 (zéro).
La valeur de minimum doit être inférieure (non égale à) à la valeur de maximum. Si la valeur de nombre maximal de ou minimum est un nombre à virgule flottante, Get-Random
retourne un nombre à virgule flottante sélectionné de manière aléatoire.
Type: | Object |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-SetSeed
Spécifie une valeur initiale pour le générateur de nombres aléatoires. Cette valeur initiale est utilisée pour la commande active et pour toutes les commandes de Get-Random
suivantes dans la session active jusqu’à ce que vous utilisiez SetSeed à nouveau ou fermez la session. Vous ne pouvez pas réinitialiser la valeur initiale à sa valeur par défaut.
Le paramètre SetSeed n’est pas obligatoire. Par défaut, Get-Random
utilise la méthode RandomNumberGenerator() pour générer une valeur initiale. Étant donné que SetSeed entraîne un comportement non aléatoire, il est généralement utilisé uniquement lorsque vous essayez de reproduire le comportement, par exemple lors du débogage ou de l’analyse d’un script qui inclut des commandes Get-Random
.
Type: | Int32 |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
Entrées
Vous pouvez diriger un ou plusieurs objets.
Get-Random
sélectionne des valeurs de manière aléatoire à partir des objets redirigés.
Sorties
System.Int32, System.Int64, System.Double
Get-Random
retourne un nombre entier ou à virgule flottante, ou un objet sélectionné de façon aléatoire à partir d’une collection soumise.
Notes
Get-Random
définit une valeur initiale par défaut pour chaque session en fonction de l’horloge de temps système au démarrage de la session.
À compter de Windows PowerShell 3.0, Get-Random
prend en charge les entiers 64 bits. Dans Windows PowerShell 2.0, toutes les valeurs sont converties en System.Int32.