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>]

Description

指令 Get-SecureRandom 長會隨機選出一個數字。 如果你提交一組物件到 Get-SecureRandom,它會從集合中隨機選取一個或多個物件。

在沒有參數或輸入的情況下,指令 Get-SecureRandom 會隨機回傳一個介於 0(0)到 [int32]::MaxValue0 之間的 32 位元無符號整數。

你可以用 的 Get-SecureRandom 參數來指定最小值、最大值,以及從集合回傳的物件數量。

Get-SecureRandom 利用 RandomNumberGenerator 類別產生密碼學上安全的隨機性。

範例

範例 1:取得一個隨機整數

此指令會隨機取得介於 0(0)與 Int32.MaxValue 之間的整數。

Get-SecureRandom
3951433

範例二:取得一個介於 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:取得隨機檔案

這些指令會從本地電腦的硬碟隨機選取 50 個檔案 C: 樣本。

$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:使用空字串或空字串的 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 位元電腦上,若 Minimum 的值為 32 位元整數, 則 Maximum 的預設值為 Int32.MaxValue。

如果 最小 值是雙重(浮點數),則最大 值 的預設值為 Double.MaxValue。 否則,預設值為 Int32.MaxValue。

參數屬性

類型:Object
預設值:None
支援萬用字元:False
不要顯示:False

參數集

RandomNumberParameterSet
Position:0
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Minimum

指定隨機數的最小值。 輸入整數、雙精度浮點數,或可轉換為整數或雙數的物件,例如數字字串(「100」)。 預設值為 0 (零)。

最小值必須小於(但不等於)最大值。 如果最大值或最小值是浮點數,則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

您可以將任何物件通過管道傳遞至此命令工具。 它會從管道物件中隨機選擇數值。

輸出

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