cmdlet
Get-SecureRandom
获取随机选择的数字。 如果将 对象的集合提交到
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
示例 3:获取介于 -100 和 99 之间的随机整数
Get-SecureRandom -Minimum -100 -Maximum 100
示例 4:获取随机浮点数
此命令获取大于或等于 10.7 且小于 20.93 的随机浮点数。
Get-SecureRandom -Minimum 10.7 -Maximum 20.93
18.08467273887
示例 5:从数组获取随机整数
此命令将从指定的数组中获取一个随机选择的数字。
1, 2, 3, 5, 8, 13 | Get-SecureRandom
示例 6:从数组中获取多个随机整数
此命令从数组中按随机顺序获取三个随机选择的数字。
1, 2, 3, 5, 8, 13 | Get-SecureRandom -Count 3
示例 7:随机化整个集合
可以使用 Shuffle 参数以随机顺序返回整个集合。
1, 2, 3, 5, 8, 13 | Get-SecureRandom -Shuffle
示例 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 参数
可以在不使用管道对象的情况下使用 Count 参数。Get-SecureRandom
以下示例获取小于 10 的三个随机数。
Get-SecureRandom -Count 3 -Maximum 10
在此示例中, InputObject 参数指定包含空字符串的数组, (''
) 和 $null
。
Get-SecureRandom -InputObject @('a','',$null)
Get-SecureRandom
返回 a
、空字符串或 $null
。 空的 sting 显示为空白行,并 $null
返回到 PowerShell 提示符。
-Count
指定要返回的随机对象或数字的数目。 默认值为 1。
与 一起使用 InputObject
时,如果 Count 的值超过集合中的对象数, Get-SecureRandom
则按随机顺序返回所有对象。
Type:Int32
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-InputObject
指定对象的集合。 Get-SecureRandom
从集合中以随机顺序获取随机选择的对象,最多获取 Count 指定的数量。 输入对象、一个包含这些对象的变量,或可获取这些对象的命令或表达式。 还可以通过管道将 对象的集合传递给 Get-SecureRandom
。
InputObject 参数接受可以包含空字符串或 $null
的数组。 数组可以在管道中向下发送,也可以作为 InputObject 参数值发送。
Type:Object[]
Position:0
Default value:None
Accept pipeline input:True
Accept wildcard characters:False
-Maximum
指定随机数的最大值。 Get-SecureRandom
返回的值小于最大 (不等于) 。 输入整数、双精度浮点数或可转换为整数或双精度值的对象,例如数字字符串 (“100”) 。
Maximum 值必须大于(不等于)Minimum 值。 如果 “最大值 ”或“ 最小值 ”是浮点数, Get-SecureRandom
则 返回随机选择的浮点数。
在 64 位计算机上,如果 Minimum 值为 32 位整数,则 Maximum 的默认值为 Int32.MaxValue。
如果 Minimum 的值为双精度值 (浮点数) ,则 Maximum 的默认值为 Double.MaxValue。 否则,默认值为 Int32.MaxValue。
Type:Object
Position:0
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Minimum
指定随机数的最小值。 输入整数、双精度浮点数或可转换为整数或双精度值的对象,例如数字字符串 (“100”) 。 默认值为 0(零)。
Minimum 值必须小于(不等于)Maximum 值。 如果 “最大值 ”或“ 最小值 ”是浮点数, Get-SecureRandom
则 返回随机选择的浮点数。
Type:Object
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Shuffle
按随机顺序返回整个集合。
Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
Object
你可以通过管道将任何对象传递给此 cmdlet。 它从管道对象中随机选择值。
Int32
Int64
Double
PSObject
此 cmdlet 返回整数或浮点数,或者从提交的集合中随机选择的对象。
Get-SecureRandom
不会始终返回与输入值相同的数据类型。 下表显示了每个数字输入类型的输出类型。