Get-Random
Hämtar ett slumptal eller väljer objekt slumpmässigt från en samling.
Syntax
		RandomNumberParameterSet (Standard)
	   
	Get-Random
    [[-Maximum] <Object>]
    [-SetSeed <Int32>]
    [-Minimum <Object>]
    [-Count <Int32>]
    [<CommonParameters>]
		RandomListItemParameterSet
	    
	Get-Random
    [-InputObject] <Object[]>
    [-SetSeed <Int32>]
    [-Count <Int32>]
    [<CommonParameters>]
		ShuffleParameterSet
	  
	Get-Random
    [-InputObject] <Object[]>
    [-SetSeed <Int32>]
    [-Shuffle]
    [<CommonParameters>]
Description
Cmdleten Get-Random hämtar ett slumpmässigt valt tal. Om du skickar en samling objekt till Get-Randomhämtar den ett eller flera slumpmässigt markerade objekt från samlingen.
Utan parametrar eller indata returnerar ett Get-Random-kommando ett slumpmässigt valt 32-bitars osignerat heltal mellan 0 (noll) och [int32]::MaxValue.
Du kan använda parametrarna för Get-Random för att ange lägsta och högsta värden, antalet objekt som returneras från en samling eller ett startnummer.
Försiktighet
              Get-Random säkerställer inte kryptografiskt säker slumpmässighet. Startvärdet används för det aktuella kommandot och för alla efterföljande Get-Random kommandon i den aktuella sessionen tills du använder SetSeed igen eller stäng sessionen. Du kan inte återställa fröet till standardvärdet.
Att avsiktligt ställa in fröet resulterar i ett icke-slumpmässigt, repeterbart beteende. Den bör endast användas när du försöker återskapa beteende, till exempel när du felsöker eller analyserar ett skript som innehåller Get-Random kommandon. Tänk på att startvärdet kan anges av annan kod i samma session, till exempel en importerad modul.
PowerShell 7.4 innehåller Get-SecureRandom, som säkerställer kryptografiskt säker slumpmässighet.
Exempel
Exempel 1: Hämta ett slumpmässigt heltal
Det här kommandot hämtar ett slumpmässigt heltal mellan 0 (noll) och Int32.MaxValue.
Get-Random
3951433
Exempel 2: Hämta ett slumpmässigt heltal mellan 0 och 99
Get-Random -Maximum 100
47
Exempel 3: Hämta ett slumpmässigt heltal mellan -100 och 99
Get-Random -Minimum -100 -Maximum 100
56
Exempel 4: Hämta ett slumpmässigt flyttalsnummer
Det här kommandot hämtar ett slumpmässigt flyttalsnummer som är större än eller lika med 10,7 och mindre än 20,93.
Get-Random -Minimum 10.7 -Maximum 20.93
18.08467273887
Exempel 5: Hämta ett slumpmässigt heltal från en matris
Det här kommandot hämtar ett slumpmässigt valt tal från den angivna matrisen.
1, 2, 3, 5, 8, 13 | Get-Random
8
Exempel 6: Hämta flera slumpmässiga heltal från en matris
Det här kommandot hämtar tre slumpmässigt valda tal i slumpmässig ordning från en matris.
1, 2, 3, 5, 8, 13 | Get-Random -Count 3
3
1
13
Exempel 7: Randomisera en hel samling
Från och med PowerShell 7.1 kan du använda parametern Shuffle för att returnera hela samlingen i slumpmässig ordning.
1, 2, 3, 5, 8, 13 | Get-Random -Shuffle
2
3
5
1
8
13
Exempel 8: Hämta ett slumpmässigt icke-numeriskt värde
Det här kommandot returnerar ett slumpmässigt värde från en icke-numerisk samling.
"red", "yellow", "blue" | Get-Random
yellow
Exempel 9: Använd parametern SetSeed 
	Det här exemplet visar effekten av att använda parametern SetSeed.
Eftersom SetSeed genererar icke-slumpmässigt beteende används det vanligtvis bara för att återskapa resultat, till exempel vid felsökning eller analys av ett skript.
# Commands with the default seed are pseudorandom
Get-Random -Maximum 100 -SetSeed 23
Get-Random -Maximum 100
Get-Random -Maximum 100
Get-Random -Maximum 100
32
25
93
95
# Commands with the same seed aren't random
Get-Random -Maximum 100 -SetSeed 23
Get-Random -Maximum 100 -SetSeed 23
Get-Random -Maximum 100 -SetSeed 23
32
32
32
# SetSeed results in a repeatable series
Get-Random -Maximum 100 -SetSeed 23
Get-Random -Maximum 100
Get-Random -Maximum 100
Get-Random -Maximum 100
32
25
93
95
Exempel 10: Hämta slumpmässiga filer
Dessa kommandon får ett slumpmässigt valt exempel på 50 filer från den C: enheten på den lokala datorn.
$Files = Get-ChildItem -Path C:\* -Recurse
$Sample = $Files | Get-Random -Count 50
Exempel 11: Rulla rättvis tärning
Det här exemplet rullar en rättvis tärning 1200 gånger och räknar resultatet. Det första kommandot, ForEach-Object upprepar anropet till Get-Random från piped i tal (1-6). Resultaten grupperas efter deras värde med Group-Object och formateras som en tabell med Select-Object.
1..1200 | ForEach-Object {
    1..6 | Get-Random
} | Group-Object | Select-Object Name,Count
Name Count
---- -----
1      206
2      199
3      196
4      226
5      185
6      188
Exempel 12: Använd parametern Count
Du kan nu använda parametern Count utan att skicka rörobjekt till att Get-Random.
I följande exempel hämtas tre slumpmässiga tal som är mindre än 10.
Get-Random -Count 3 -Maximum 10
9
0
8
Exempel 13: Använd parametern InputObject med en tom sträng eller $null 
	I det här exemplet anger parametern InputObject en matris som innehåller en tom sträng ('') och $null.
Get-Random -InputObject @('a','',$null)
              Get-Random returnerar antingen a, tom sträng eller $null. Den tomma strängen visas som en tom rad och $null återgår till en PowerShell-prompt.
Parametrar
-Count
Anger antalet slumpmässiga objekt som ska returneras. Standardvärdet är 1.
När det används med InputObject som innehåller en samling:
- Varje slumpmässigt markerat objekt returneras bara en gång.
- Om värdet för Antal överskrider antalet objekt i samlingen returneras alla objekt i samlingen i slumpmässig ordning.
Parameteregenskaper
| Typ: | Int32 | 
| Standardvärde: | None | 
| Stöder jokertecken: | False | 
| DontShow: | False | 
Parameteruppsättningar
					RandomNumberParameterSet 
					
				   
				| Position: | Named | 
| Obligatorisk: | False | 
| Värde från pipeline: | False | 
| Värde från pipeline efter egenskapsnamn: | False | 
| Värde från återstående argument: | False | 
					RandomListItemParameterSet 
					
				    
				| Position: | Named | 
| Obligatorisk: | False | 
| Värde från pipeline: | False | 
| Värde från pipeline efter egenskapsnamn: | False | 
| Värde från återstående argument: | False | 
-InputObject 
		Anger en samling objekt. 
              Get-Random hämtar slumpmässigt valda objekt i slumpmässig ordning från samlingen upp till det tal som anges av Count. Ange objekten, en variabel som innehåller objekten eller ett kommando eller uttryck som hämtar objekten. Du kan också skicka en samling objekt till Get-Random.
Från och med PowerShell 7 accepterar parametern InputObject matriser som kan innehålla en tom sträng eller $null. Matrisen kan skickas ned i pipelinen eller som ett InputObject- parametervärde.
Parameteregenskaper
| Typ: | Object[] | 
| Standardvärde: | None | 
| Stöder jokertecken: | False | 
| DontShow: | False | 
Parameteruppsättningar
					RandomListItemParameterSet 
					
				    
				| Position: | 0 | 
| Obligatorisk: | True | 
| Värde från pipeline: | True | 
| Värde från pipeline efter egenskapsnamn: | False | 
| Värde från återstående argument: | False | 
					ShuffleParameterSet 
					
				  
				| Position: | 0 | 
| Obligatorisk: | True | 
| Värde från pipeline: | True | 
| Värde från pipeline efter egenskapsnamn: | False | 
| Värde från återstående argument: | False | 
-Maximum
Anger ett maximalt värde för det slumpmässiga talet. 
              Get-Random returnerar ett värde som är mindre än det maximala värdet (inte lika med). Ange ett heltal, ett flyttal med dubbel precision eller ett objekt som kan konverteras till ett heltal eller dubbelt, till exempel en numerisk sträng ("100").
Värdet för Maximum måste vara större än (inte lika med) värdet för Minsta. Om värdet för Maximum eller Minimum är ett flyttalsnummer returnerar Get-Random ett slumpmässigt valt flyttalsnummer.
Om värdet för Minsta är ett 32-bitars heltal på en 64-bitars dator är standardvärdet HögstaInt32.MaxValue.
Om värdet för minsta är ett dubbelt värde (ett flyttalsnummer) är standardvärdet HögstaDouble.MaxValue. Annars är standardvärdet Int32.MaxValue.
Parameteregenskaper
| Typ: | Object | 
| Standardvärde: | None | 
| Stöder jokertecken: | False | 
| DontShow: | False | 
Parameteruppsättningar
					RandomNumberParameterSet 
					
				   
				| Position: | 0 | 
| Obligatorisk: | False | 
| Värde från pipeline: | False | 
| Värde från pipeline efter egenskapsnamn: | False | 
| Värde från återstående argument: | False | 
-Minimum
Anger ett minsta värde för det slumpmässiga talet. Ange ett heltal, ett flyttal med dubbel precision eller ett objekt som kan konverteras till ett heltal eller dubbelt, till exempel en numerisk sträng ("100"). Standardvärdet är 0 (noll).
Värdet för minsta måste vara mindre än (inte lika med) värdet för Maximum. Om värdet för Maximum eller Minimum är ett flyttalsnummer returnerar Get-Random ett slumpmässigt valt flyttalsnummer.
Parameteregenskaper
| Typ: | Object | 
| Standardvärde: | None | 
| Stöder jokertecken: | False | 
| DontShow: | False | 
Parameteruppsättningar
					RandomNumberParameterSet 
					
				   
				| Position: | Named | 
| Obligatorisk: | False | 
| Värde från pipeline: | False | 
| Värde från pipeline efter egenskapsnamn: | False | 
| Värde från återstående argument: | False | 
-SetSeed 
		Anger ett startvärde för slumptalsgeneratorn. När du använder SetSeedgenererar cmdleten pseudorandomnummer, som inte är kryptografiskt säkra.
Försiktighet
Om du anger seed-resultatet visas ett icke-slumpmässigt beteende. Den bör endast användas när du försöker återskapa beteende, till exempel när du felsöker eller analyserar ett skript som innehåller Get-Random kommandon.
Det här startvärdet används för det aktuella kommandot och för alla efterföljande Get-Random kommandon i den aktuella sessionen tills du använder SetSeed igen eller stänger sessionen. Du kan inte återställa fröet till standardvärdet.
Parameteregenskaper
| Typ: | |
| Standardvärde: | None | 
| Stöder jokertecken: | False | 
| DontShow: | False | 
Parameteruppsättningar
(All)
| Position: | Named | 
| Obligatorisk: | False | 
| Värde från pipeline: | False | 
| Värde från pipeline efter egenskapsnamn: | False | 
| Värde från återstående argument: | False | 
-Shuffle
Returnerar hela samlingen i en slumpmässig ordning.
Parameteregenskaper
| Typ: | SwitchParameter | 
| Standardvärde: | None | 
| Stöder jokertecken: | False | 
| DontShow: | False | 
Parameteruppsättningar
					ShuffleParameterSet 
					
				  
				| Position: | Named | 
| Obligatorisk: | True | 
| Värde från pipeline: | False | 
| Värde från pipeline efter egenskapsnamn: | False | 
| Värde från återstående argument: | False | 
CommonParameters
Den här cmdleten stöder vanliga parametrar: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction och -WarningVariable. Mer information finns i about_CommonParameters.
Indata
Object
Du kan skicka valfritt objekt till den här cmdleten. Den väljer värden slumpmässigt från piped-objekten.
Utdata
Int32
Int64
Double
PSObject
Den här cmdleten returnerar ett heltal eller flyttalsnummer, eller ett objekt som valts slumpmässigt från en skickad samling.
Kommentarer
              Get-Random returnerar inte alltid samma datatyp som indatavärdet. I följande tabell visas utdatatypen för var och en av de numeriska indatatyperna.
| Indatatyp | Utdatatyp | 
|---|---|
| SByte | dubbel | 
| byte | dubbel | 
| Int16 | dubbel | 
| UInt16 | dubbel | 
| Int32 | Int32 | 
| UInt32 | dubbel | 
| Int64 | Int64 | 
| UInt64 | dubbel | 
| dubbel | dubbel | 
| Singel | dubbel | 
Från och med Windows PowerShell 3.0 stöder Get-Random 64-bitars heltal. I Windows PowerShell 2.0 omvandlas alla värden till System.Int32.
Från och med PowerShell 7 accepterar parametern InputObject i parameteruppsättningen RandomListItemParameterSet matriser som innehåller en tom sträng eller $null. I tidigare PowerShell-versioner accepterade endast parametern Maximum i parameteruppsättningen RandomNumberParameterSet en tom sträng eller $null.