Get-SecureRandom
取得隨機數,或從集合隨機選取物件。
語法
Get-SecureRandom
[[-Maximum] <Object>]
[-Minimum <Object>]
[-Count <Int32>]
[<CommonParameters>]
Get-SecureRandom
[-InputObject] <Object[]>
[-Count <Int32>]
[<CommonParameters>]
Get-SecureRandom
[-InputObject] <Object[]>
[-Shuffle]
[<CommonParameters>]
Description
Get-SecureRandom
Cmdlet 會取得隨機選取的數位。 如果您將 物件的集合提交至 Get-SecureRandom
,它會從集合中取得一或多個隨機選取的物件。
如果沒有參數或輸入,Get-SecureRandom
命令會傳回隨機選取的 32 位無符號整數,介於 0 (零) 和 [int32]::MaxValue
之間。
您可以使用 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 參數
您可以使用 Count 參數,而不用管線物件來 Get-SecureRandom
。 下列範例會取得小於10的三個隨機數。
Get-SecureRandom -Count 3 -Maximum 10
9
0
8
範例 12:搭配空字串或$null使用 InputObject 參數
在此範例中,InputObject 參數會指定包含空字串 (''
) 和 $null
的數位。
Get-SecureRandom -InputObject @('a','',$null)
Get-SecureRandom
會傳回 a
、空字串或 $null
。 空字串會顯示為空白行,並 $null
返回PowerShell提示字元。
參數
-Count
指定要傳回的隨機物件數目。 預設值為 1。
與包含集合的 InputObject
搭配使用時:
- 每個隨機選取的專案只會傳回一次。
- 如果 Count 的值 超過集合中的物件數目,則集合中的所有物件都會以隨機順序傳回。
類型: | Int32 |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-InputObject
指定物件的集合。
Get-SecureRandom
會以隨機順序從集合隨機選取的物件,到 Count所指定的數位。 輸入物件、包含 物件的變數,或取得物件的命令或表達式。 您也可以使用管線將 物件的集合傳送至 Get-SecureRandom
。
InputObject 參數接受可包含空字串或 $null
的陣列。 陣列可以向下傳送至管線,或做為 InputObject 參數值。
類型: | Object[] |
Position: | 0 |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-Maximum
指定隨機數的最大值。
Get-SecureRandom
傳回小於最大值的值(不相等)。 輸入整數、雙精確度浮點數,或可以轉換成整數或雙精度浮點數的物件,例如數值字串 (“100” )。
Maximum 的值必須大於 Minimum的值(不等於)。 如果 Maximum 或 Minimum 的值是浮點數,Get-SecureRandom
會傳回隨機選取的浮點數。
在 64 位電腦上,如果 Minimum 的值是 32 位整數,則 Maximum 的預設值 Int32.MaxValue。
如果 Minimum 的值是雙精度浮點數,則 Maximum 的預設值 Double.MaxValue。 否則,預設值為 Int32.MaxValue。
類型: | Object |
Position: | 0 |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Minimum
指定隨機數的最小值。 輸入整數、雙精確度浮點數,或可以轉換成整數或雙精度浮點數的物件,例如數值字串 (“100” )。 預設值為 0 (零)。
Minimum 的值必須小於 (不等於) Maximum的值。 如果 Maximum 或 Minimum 的值是浮點數,Get-SecureRandom
會傳回隨機選取的浮點數。
類型: | Object |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Shuffle
以隨機順序傳回整個集合。
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | True |
接受管線輸入: | False |
接受萬用字元: | False |
輸入
您可以使用管線將任何物件傳送至此 Cmdlet。 它會從管道物件隨機選取值。
輸出
這個 Cmdlet 會傳回整數或浮點數,或從送出集合隨機選取的物件。
備註
Get-SecureRandom
不一定會傳回與輸入值相同的數據類型。 下表顯示每個數值輸入類型的輸出類型。
輸入類型 | 輸出類型 |
---|---|
SByte | 雙 |
位元組 | 雙 |
Int16 | 雙 |
UInt16 | 雙 |
Int32 | Int32 |
UInt32 | 雙 |
Int64 | Int64 |
UInt64 | 雙 |
雙 | 雙 |
單 | 雙 |