Get-SecureRandom
获取随机数,或从集合中随机选择对象。
语法
RandomNumberParameterSet (默认值)
Get-SecureRandom
[[-Maximum] <Object>]
[-Minimum <Object>]
[-Count <Int32>]
[<CommonParameters>]
RandomListItemParameterSet
Get-SecureRandom
[-InputObject] <Object[]>
[-Count <Int32>]
[<CommonParameters>]
ShuffleParameterSet
Get-SecureRandom
[-InputObject] <Object[]>
[-Shuffle]
[<CommonParameters>]
说明
该 Get-SecureRandom cmdlet 获取随机选择的数字。 如果将对象集合提交到 Get-SecureRandom其中,它将从集合中获取一个或多个随机选择的对象。
如果没有参数或输入,命令 Get-SecureRandom 将返回介于 0(零)和 [int32]::MaxValue之间的随机选择的 32 位无符号整数。
可以使用参数 Get-SecureRandom 来指定最小值和最大值以及从集合返回的对象数。
Get-SecureRandom 使用 RandomNumberGenerator 类生成加密安全随机性。
示例
示例 1:获取随机整数
此命令获取介于 0(零)和 Int32.MaxValue 之间的随机整数。
Get-SecureRandom
3951433
示例 2:获取介于 0 和 99 之间的随机整数
Get-SecureRandom -Maximum 100
47
示例 3:获取 -100 和 99 之间的随机整数
Get-SecureRandom -Minimum -100 -Maximum 100
56
示例 4:获取随机浮点数
此命令获取大于或等于 10.7 且小于 20.93 的随机浮点数。
Get-SecureRandom -Minimum 10.7 -Maximum 20.93
18.08467273887
示例 5:从数组获取随机整数
此命令从指定的数组中获取随机选择的数字。
1, 2, 3, 5, 8, 13 | Get-SecureRandom
8
示例 6:从数组中获取多个随机整数
此命令从数组中按随机顺序获取三个随机选择的数字。
1, 2, 3, 5, 8, 13 | Get-SecureRandom -Count 3
3
1
13
示例 7:随机化整个集合
可以使用 Shuffle 参数以随机顺序返回整个集合。
1, 2, 3, 5, 8, 13 | Get-SecureRandom -Shuffle
2
3
5
1
8
13
示例 8:获取随机非数值
此命令从非数值集合返回随机值。
"red", "yellow", "blue" | Get-SecureRandom
yellow
示例 9:获取随机文件
这些命令从 C: 本地计算机的驱动器中随机选择 50 个文件的示例。
$Files = Get-ChildItem -Path C:\* -Recurse
$Sample = $Files | Get-SecureRandom -Count 50
示例 10:滚动公平切分
本示例滚动 1200 次公平死亡,并计算结果。 第一个命令重复 ForEach-Object 从通过管道传入的数字(1-6)的调用 Get-SecureRandom 。 结果按其值分组,并 Group-Object 格式化为带 . 的 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
示例 11:使用 Count 参数
可以在不使用管道对象Get-SecureRandom的情况下使用 Count 参数。 以下示例获取三个小于 10 的随机数。
Get-SecureRandom -Count 3 -Maximum 10
9
0
8
示例 12:将 InputObject 参数与空字符串或$null
在此示例中, InputObject 参数指定包含空字符串 ('') 和 $null.
Get-SecureRandom -InputObject @('a','',$null)
Get-SecureRandom 返回空 a字符串或 $null。 空字符串显示为空白行,并 $null 返回到 PowerShell 提示符。
参数
-Count
指定要返回的随机对象数。 默认值为 1。
与包含集合一起使用 InputObject 时:
- 每个随机选择的项仅返回一次。
- 如果 Count 的值超过集合中的对象数,则集合中的所有对象都按随机顺序返回。
参数属性
| 类型: | Int32 |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
参数集
RandomNumberParameterSet
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
RandomListItemParameterSet
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-InputObject
指定对象的集合。
Get-SecureRandom 从集合中随机获取随机选择的对象,最多为 Count 指定的数字。 输入对象、包含对象的变量或获取对象的命令或表达式。 还可以通过管道将对象集合传递给 Get-SecureRandom。
InputObject 参数接受可以包含空字符串或 $null. 数组可以向下发送管道,也可以作为 InputObject 参数值发送。
参数属性
| 类型: | Object[] |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
参数集
RandomListItemParameterSet
| Position: | 0 |
| 必需: | True |
| 来自管道的值: | True |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
ShuffleParameterSet
| Position: | 0 |
| 必需: | True |
| 来自管道的值: | True |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-Maximum
指定随机数的最大值。
Get-SecureRandom 返回小于最大值(不相等)的值。 输入整数、双精度浮点数或可转换为整数或双精度的对象,例如数字字符串(“100”)。
最大值的值必须大于(不等于)最小值。 如果 最大值 或 最小值 是浮点数, Get-SecureRandom 则返回随机选择的浮点数。
在 64 位计算机上,如果 最小值 为 32 位整数,则 最大值 为 Int32.MaxValue。
如果 Minimum 的值是双精度值(浮点数),则 最大值 为 Double.MaxValue。 否则,默认值为 Int32.MaxValue。
参数属性
| 类型: | Object |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
参数集
RandomNumberParameterSet
| Position: | 0 |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-Minimum
指定随机数的最小值。 输入整数、双精度浮点数或可转换为整数或双精度的对象,例如数字字符串(“100”)。 默认值为 0(零)。
Minimum 的值必须小于最大值(不等于)。 如果 最大值 或 最小值 是浮点数, Get-SecureRandom 则返回随机选择的浮点数。
参数属性
| 类型: | Object |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
参数集
RandomNumberParameterSet
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-Shuffle
按随机顺序返回整个集合。
参数属性
| 类型: | SwitchParameter |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
参数集
ShuffleParameterSet
| Position: | Named |
| 必需: | True |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
CommonParameters
此 cmdlet 支持通用参数:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 有关详细信息,请参阅 about_CommonParameters。
输入
Object
你可以通过管道将任何对象传递给此 cmdlet。 它从管道对象中随机选择值。
输出
Int32
Int64
Double
PSObject
此 cmdlet 返回整数或浮点数,或从提交的集合中随机选择的对象。
备注
Get-SecureRandom 并不总是返回与输入值相同的数据类型。 下表显示了每个数值输入类型的输出类型。
| 输入类型 | 输出类型 |
|---|---|
| SByte | Double |
| Byte | Double |
| Int16 | Double |
| UInt16 | Double |
| Int32 | Int32 |
| UInt32 | Double |
| Int64 | Int64 |
| UInt64 | Double |
| Double | Double |
| Single | Double |