Get-SecureRandom
Obtiene un número aleatorio o selecciona objetos aleatoriamente de una colección.
Sintaxis
RandomNumberParameterSet (Es el valor predeterminado).
Get-SecureRandom
[[-Maximum] <Object>]
[-Minimum <Object>]
[-Count <Int32>]
[<CommonParameters>]
RandomListItemParameterSet
Get-SecureRandom
[-InputObject] <Object[]>
[-Count <Int32>]
[<CommonParameters>]
ShuffleParameterSet
Get-SecureRandom
[-InputObject] <Object[]>
[-Shuffle]
[<CommonParameters>]
Description
El cmdlet Get-SecureRandom obtiene un número seleccionado aleatoriamente. Si envía una colección de objetos a Get-SecureRandom, obtiene uno o varios objetos seleccionados aleatoriamente de la colección.
Sin parámetros ni entrada, un comando Get-SecureRandom devuelve un entero de 32 bits sin signo seleccionado aleatoriamente entre 0 (cero) y [int32]::MaxValue.
Puede usar los parámetros de Get-SecureRandom para especificar los valores mínimo y máximo y el número de objetos devueltos de una colección.
Get-SecureRandom genera aleatoriedad criptográficamente segura mediante la clase RandomNumberGenerator.
Ejemplos
Ejemplo 1: Obtener un entero aleatorio
Este comando obtiene un entero aleatorio entre 0 (cero) y Int32.MaxValue.
Get-SecureRandom
3951433
Ejemplo 2: Obtener un entero aleatorio entre 0 y 99
Get-SecureRandom -Maximum 100
47
Ejemplo 3: Obtener un entero aleatorio entre -100 y 99
Get-SecureRandom -Minimum -100 -Maximum 100
56
Ejemplo 4: Obtener un número de punto flotante aleatorio
Este comando obtiene un número de punto flotante aleatorio mayor o igual que 10,7 y menor que 20,93.
Get-SecureRandom -Minimum 10.7 -Maximum 20.93
18.08467273887
Ejemplo 5: Obtener un entero aleatorio de una matriz
Este comando obtiene un número seleccionado aleatoriamente de la matriz especificada.
1, 2, 3, 5, 8, 13 | Get-SecureRandom
8
Ejemplo 6: Obtener varios enteros aleatorios de una matriz
Este comando obtiene tres números seleccionados aleatoriamente en orden aleatorio de una matriz.
1, 2, 3, 5, 8, 13 | Get-SecureRandom -Count 3
3
1
13
Ejemplo 7: Aleatorizar una colección completa
Puede usar el parámetro Shuffle para devolver toda la colección en un orden aleatorio.
1, 2, 3, 5, 8, 13 | Get-SecureRandom -Shuffle
2
3
5
1
8
13
Ejemplo 8: Obtención de un valor no numérico aleatorio
Este comando devuelve un valor aleatorio de una colección no numérica.
"red", "yellow", "blue" | Get-SecureRandom
yellow
Ejemplo 9: Obtener archivos aleatorios
Estos comandos obtienen un ejemplo seleccionado aleatoriamente de 50 archivos de la unidad C: del equipo local.
$Files = Get-ChildItem -Path C:\* -Recurse
$Sample = $Files | Get-SecureRandom -Count 50
Ejemplo 10: Poner dados justos
En este ejemplo se implementa una serie de die die 1200 veces y se cuentan los resultados. El primer comando, ForEach-Object repite la llamada a Get-SecureRandom desde la canalización en números (1-6). Los resultados se agrupan por su valor con Group-Object y tienen el formato de una tabla 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
Ejemplo 11: Uso del parámetro Count
Puede usar el parámetro Count sin canalizar objetos para Get-SecureRandom. En el ejemplo siguiente se obtienen tres números aleatorios inferiores a 10.
Get-SecureRandom -Count 3 -Maximum 10
9
0
8
Ejemplo 12: Uso del parámetro InputObject con una cadena vacía o $null
En este ejemplo, el parámetro InputObject especifica una matriz que contiene una cadena vacía ('') y $null.
Get-SecureRandom -InputObject @('a','',$null)
Get-SecureRandom devuelve a, cadena vacía o $null. La cadena vacía se muestra como una línea en blanco y $null vuelve a un símbolo del sistema de PowerShell.
Parámetros
-Count
Especifica el número de objetos aleatorios que se van a devolver. El valor predeterminado es 1.
Cuando se usa con InputObject que contiene una colección:
- Cada elemento seleccionado aleatoriamente solo se devuelve una vez.
- Si el valor de Count supera el número de objetos de la colección, todos los objetos de la colección se devuelven en orden aleatorio.
Propiedades del parámetro
| Tipo: | Int32 |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
RandomNumberParameterSet
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
RandomListItemParameterSet
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-InputObject
Especifica una colección de objetos .
Get-SecureRandom obtiene objetos seleccionados aleatoriamente en orden aleatorio de la colección hasta el número especificado por Count. Escriba los objetos , una variable que contiene los objetos o un comando o expresión que obtiene los objetos. También puede canalizar una colección de objetos para Get-SecureRandom.
El parámetro InputObject acepta matrices que pueden contener una cadena vacía o $null. La matriz se puede enviar por la canalización o como un valor de parámetro InputObject.
Propiedades del parámetro
| Tipo: | Object[] |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
RandomListItemParameterSet
| Posición: | 0 |
| Mandatory: | True |
| Valor de la canalización: | True |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
ShuffleParameterSet
| Posición: | 0 |
| Mandatory: | True |
| Valor de la canalización: | True |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Maximum
Especifica un valor máximo para el número aleatorio.
Get-SecureRandom devuelve un valor menor que el máximo (no igual). Escriba un entero, un número de punto flotante de precisión doble o un objeto que se pueda convertir en un entero o double, como una cadena numérica ("100").
El valor de Máximo debe ser mayor que (no igual a) el valor de Mínimo. Si el valor de Maximum o Minimum es un número de punto flotante, Get-SecureRandom devuelve un número de punto flotante seleccionado aleatoriamente.
En un equipo de 64 bits, si el valor de Mínimo es un entero de 32 bits, el valor predeterminado de Maximum es Int32.MaxValue.
Si el valor de Mínimo es un doble (un número de punto flotante), el valor predeterminado de Máximo es Double.MaxValue. De lo contrario, el valor predeterminado es Int32.MaxValue.
Propiedades del parámetro
| Tipo: | Object |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
RandomNumberParameterSet
| Posición: | 0 |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Minimum
Especifica un valor mínimo para el número aleatorio. Escriba un entero, un número de punto flotante de precisión doble o un objeto que se pueda convertir en un entero o double, como una cadena numérica ("100"). El valor predeterminado es 0 (cero).
El valor de Mínimo debe ser menor que (no igual que) el valor de Máximo. Si el valor de Maximum o Minimum es un número de punto flotante, Get-SecureRandom devuelve un número de punto flotante seleccionado aleatoriamente.
Propiedades del parámetro
| Tipo: | Object |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
RandomNumberParameterSet
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Shuffle
Devuelve toda la colección en un orden aleatorio.
Propiedades del parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
ShuffleParameterSet
| Posición: | Named |
| Mandatory: | True |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
CommonParameters
Este cmdlet admite los parámetros comunes: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction y -WarningVariable. Para obtener más información, vea about_CommonParameters.
Entradas
Object
Puede canalizar cualquier objeto a este cmdlet. Selecciona los valores aleatoriamente de los objetos canalizado.
Salidas
Int32
Int64
Double
PSObject
Este cmdlet devuelve un número entero o de punto flotante, o un objeto seleccionado aleatoriamente de una colección enviada.
Notas
Get-SecureRandom no siempre devuelve el mismo tipo de datos que el valor de entrada. En la tabla siguiente se muestra el tipo de salida para cada uno de los tipos de entrada numéricos.
| Tipo de entrada | Tipo de salida |
|---|---|
| SByte | Double |
| byte | Double |
| Int16 | Double |
| UInt16 | Double |
| Int32 | Int32 |
| UInt32 | Double |
| Int64 | Int64 |
| UInt64 | Double |
| Double | Double |
| Soltero | Double |