Get-SecureRandom

取得隨機數,或從集合隨機選取物件。

Syntax

Get-SecureRandom
   [[-Maximum] <Object>]
   [-Minimum <Object>]
   [-Count <Int32>]
   [<CommonParameters>]
Get-SecureRandom
   [-InputObject] <Object[]>
   [-Count <Int32>]
   [<CommonParameters>]
Get-SecureRandom
   [-InputObject] <Object[]>
   [-Shuffle]
   [<CommonParameters>]

Description

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

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 從以管道傳送的數位重複呼叫 Get-SecureRandom (1-6)。 結果會依其值分組,並以 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。 空的 sting 會顯示為空白行,並 $null 返回 PowerShell 提示字元。

參數

-Count

指定要傳回的隨機物件數目。 預設值是 1。

與包含集合搭配 InputObject 使用時:

  • 每個隨機選取的專案只會傳回一次。
  • 如果 Count 的值超過集合中的物件數目,集合中的所有物件都會以隨機順序傳回。
Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

指定物件的集合。 Get-SecureRandom會以隨機順序從集合隨機選取的物件,從 Count 指定的數字開始。 輸入物件、包含 物件的變數,或取得物件的命令或表達式。 您也可以使用管線將 物件的集合傳送至 Get-SecureRandom

InputObject 參數接受可包含空字串或$null的陣列。 陣列可以向下傳送管線或做為 InputObject 參數值。

Type:Object[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Maximum

指定隨機數的最大值。 Get-SecureRandom 傳回小於最大值的值(不相等)。 輸入整數、雙精確度浮點數,或可以轉換成整數或雙精度浮點數的物件,例如數值字串 (“100” )。

Maximum 的值必須大於 [最小值] 的值(不等於)。 如果 Maximum 或 Minimum 的值是浮點數,Get-SecureRandom則會傳回隨機選取的浮點數。

在 64 位電腦上,如果 Minimum 的值是 32 位整數,預設值Int32.MaxValue。

如果 Minimum 的值是雙精度浮點數,則 Maximum預設值為 Double.MaxValue 否則,預設值為 Int32.MaxValue

Type:Object
Position:0
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Minimum

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

Minimum 的值必須小於 (不等於) Maximum 的值。 如果 Maximum 或 Minimum 的值是浮點數,Get-SecureRandom則會傳回隨機選取的浮點數。

Type:Object
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Shuffle

以隨機順序傳回整個集合。

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

輸入

Object

您可以使用管線將任何物件傳送至此 Cmdlet。 它會從管道物件隨機選取值。

輸出

Int32

Int64

Double

PSObject

這個 Cmdlet 會傳回整數或浮點數,或從送出集合隨機選取的物件。

備註

Get-SecureRandom 不一定會傳回與輸入值相同的數據類型。 下表顯示每個數值輸入類型的輸出類型。

輸入類型 輸出類型
SByte Double
位元組 Double
Int16 Double
UInt16 Double
Int32 Int32
UInt32 Double
Int64 Int64
UInt64 Double
Double Double
Single Double