Obtiene un número aleatorio o selecciona aleatoriamente objetos de una colección.

Sintaxis

Get-Random [-InputObject] <Object[]> [-Count <int>] [-SetSeed <int>] [<CommonParameters>]

Get-Random [[-Maximum] <Object>] [-Minimum <Object>] [-SetSeed <int>] [<CommonParameters>]

Descripción

El cmdlet Get-Random obtiene un número aleatoriamente seleccionado. Si se envía una colección de objetos a Get-Random, este cmdlet obtiene uno o varios objetos aleatoriamente seleccionados de la colección.

Si no se especifica ningún parámetro ni entrada, un comando Get-Random devuelve un entero sin signo de 32 bits aleatoriamente seleccionado entre 0 (cero) e Int32.MaxValue (0x7FFFFFFF, 2.147.483.647).

Puede utilizar los parámetros de Get-Random para especificar un valor de inicialización, valores mínimo y máximo, así como el número de objetos devueltos de una colección enviada.

Parámetros

-Count <int>

Determina el número de objetos que se van a devolver. El valor predeterminado es 1. Si el valor de Count es mayor que el número de objetos en la colección, Get-Random devuelve todos los objetos en orden aleatorio.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

1

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-InputObject <Object[]>

Especifica una colección de objetos. Get-Random obtiene en orden aleatorio los objetos aleatoriamente seleccionados de la colección. Especifique los objetos, la variable que contiene los objetos, o bien, un comando o una expresión que los obtenga. También puede canalizar una colección de objetos a Get-Random.

¿Requerido?

true

¿Posición?

1

Valor predeterminado

¿Aceptar canalización?

true (ByValue)

¿Aceptar caracteres comodín?

false

-Maximum <Object>

Especifica un valor máximo para el número aleatorio. Get-Random devuelve un valor menor que el valor máximo. Escriba un entero de 32 bits, un número de punto flotante de doble precisión o un objeto que se pueda convertir en un entero o valor de tipo double, como una cadena numérica ("100"). El valor de Maximum debe ser mayor que el valor de Minimum.

Si el valor de Maximum o Minimum es un número de punto flotante, Get-Random devuelve un número de punto flotante aleatoriamente seleccionado.

Si el valor de Minimum es un valor de tipo double (número de punto flotante), el valor predeterminado de Maximum es Double.MaxValue. En caso contrario, el valor predeterminado es Int32.MaxValue (2.147.483.647 o 0x7FFFFFFF).

¿Requerido?

false

¿Posición?

1

Valor predeterminado

Int32.MaxValue

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-Minimum <Object>

Especifica un valor mínimo para el número aleatorio. Escriba un entero de 32 bits, un número de punto flotante de doble precisión o un objeto que se pueda convertir en un entero o valor de tipo double, como una cadena numérica ("100"). El valor predeterminado es 0 (cero).

El valor de Minimum debe ser menor que el valor de Maximum. Si el valor de Maximum o Minimum es un número de punto flotante, Get-Random devuelve un número de punto flotante aleatoriamente seleccionado.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

0

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-SetSeed <int>

Especifica un valor de inicialización para el generador de números aleatorios. Este valor se utiliza para el comando actual y todos los comandos Get-Random subsiguientes en la sesión actual hasta que se vuelva a usar SetSeed o se cierre la sesión. No se puede restablecer el valor de inicialización en su valor predeterminado basado en el reloj.

SetSeed no es un parámetro obligatorio. De forma predeterminada, Get-Random utiliza el reloj del sistema para generar un valor de inicialización. Dado que SetSeed genera un comportamiento no aleatorio, se suele usar únicamente cuando se intenta reproducir el comportamiento, por ejemplo, al depurar o analizar un script que incluye comandos Get-Random.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

System clock

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

<CommonParameters>

Este cmdlet admite los parámetros comunes: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer y -OutVariable. Para obtener más información, vea about_Commonparameters.

Entradas y salidas

El tipo de entrada es el tipo de los objetos que se pueden canalizar al cmdlet. El tipo devuelto es el tipo de los objetos que el cmdlet devuelve.

Entradas

System.Object

Puede canalizar uno o varios objetos a Get-Random. Get-Random selecciona aleatoriamente valores de los objetos canalizados.

Salidas

System.Object

Get-Random devuelve un entero o número de punto flotante, o bien, un objeto aleatoriamente seleccionado de una colección enviada.

Notas

Get-Random establece un valor de inicialización predeterminado para cada sesión basándose en el reloj del sistema cuando se inicia la sesión.

Ejemplo 1

C:\PS>get-random

3951433

Descripción
-----------
Este comando obtiene un entero aleatorio comprendido entre 0 (cero) e Int32.MaxValue.






Ejemplo 2

C:\PS>get-random -maximum 100

47

Descripción
-----------
Este comando obtiene un entero aleatorio comprendido entre 0 (cero) y 99.






Ejemplo 3

C:\PS>get-random -minimum -100 -maximum 100

-56

Descripción
-----------
Este comando obtiene un entero aleatorio comprendido entre -100 y 99.






Ejemplo 4

C:\PS>get-random -min 10.7 -max 20.93

18.08467273887

Descripción
-----------
Este comando obtiene un número de punto flotante aleatorio mayor o igual que 10,7 y menor que 20,92.






Ejemplo 5

C:\PS>get-random -input 1, 2, 3, 5, 8, 13

8

Descripción
-----------
Este comando obtiene un número aleatoriamente seleccionado de la matriz especificada.






Ejemplo 6

C:\PS>get-random -input 1, 2, 3, 5, 8, 13 -count 3

3
1
13

Descripción
-----------
Este comando obtiene en orden aleatorio tres números aleatoriamente seleccionados de la matriz.






Ejemplo 7

C:\PS>get-random -input 1, 2, 3, 5, 8, 13 -count ([int]::MaxValue)

2
3
5
1
8
13

Descripción
-----------
Este comando devuelve toda la colección en orden aleatorio. El valor del parámetro Count es la propiedad estática MaxValue de los enteros. 

Para devolver una colección completa en orden aleatorio, escriba cualquier número mayor o igual que el número de objetos en la colección.






Ejemplo 8

C:\PS>get-random -input "red", "yellow", "blue"

yellow

Descripción
-----------
Este comando devuelve un valor aleatorio de una colección no numérica.






Ejemplo 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

Descripción
-----------
Este comando obtiene un proceso aleatoriamente seleccionado de la colección de procesos en el equipo.






Ejemplo 10

C:\PS>get-content servers.txt | get-random -count (get-content servers.txt).count | foreach {invoke-expression -computer $_ -command 'get-process powershell'}

Descripción
-----------
Este comando ejecuta un comando en una serie de equipos remotos en orden aleatorio.






Ejemplo 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

Descripción
-----------
En este ejemplo, se muestra el efecto de utilizar el parámetro SetSeed. Dado que SetSeed genera un comportamiento no aleatorio, se suele usar únicamente para reproducir resultados, por ejemplo, al depurar o analizar un script.






Ejemplo 12

C:\PS>$files = dir -path c:\* -recurse

C:\PS> $sample = $files | get-random -count 50

Descripción
-----------
Estos comandos obtienen una muestra aleatoriamente seleccionada de 50 archivos de la unidad C: del equipo local.






Ejemplo 13

C:\PS>get-random 10001

7600

Descripción
-----------
Este comando obtiene un entero aleatorio menor que 10001. Dado que el parámetro Maximum tiene la posición 1, se puede omitir el nombre de parámetro cuando el valor es el primer parámetro o el único parámetro sin nombre del comando.









Tabla de contenido