Получает случайное число или случайным образом выбирает объекты из коллекции.

Синтаксис

Get-Random [-InputObject] <Object[]> [-Count <int>] [-SetSeed <int>] [<CommonParameters>]

Get-Random [[-Maximum] <Object>] [-Minimum <Object>] [-SetSeed <int>] [<CommonParameters>]

Описание

Командлет Get-Random получает выбранное случайным образом число. Если передать командлету Get-Random коллекцию объектов, он вернет один или несколько выбранных случайным образом объектов этой коллекции.

Без параметров или входного значения команда Get-Random возвращает случайное 32-битное целое число без знака от 0 до значения Int32.MaxValue (0x7FFFFFFF, 2 147 483 647).

С помощью параметров командлета Get-Random можно задать начальное число, минимальное и максимальное значения, а также количество объектов, возвращаемых из переданной коллекции.

Параметры

-Count <int>

Определяет количество возвращаемых объектов. По умолчанию используется значение 1. Если значение Count превышает число объектов в коллекции, командлет Get-Random возвращает все объекты в случайном порядке.

Обязательно?

false

Позиция?

named

Значение по умолчанию

1

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-InputObject <Object[]>

Задает коллекцию объектов. Командлет Get-Random получает случайным образом выбранные объекты этой коллекции в случайном порядке. Введите объекты, переменную, содержащую объекты, либо получающую их команду или выражение. Кроме того, коллекцию объектов можно передать командлету Get-Random по конвейеру.

Обязательно?

true

Позиция?

1

Значение по умолчанию

Принимать входные данные из конвейера?

true (ByValue)

Принимать подстановочные знаки?

false

-Maximum <Object>

Задает максимальное значение случайного числа. Командлет Get-Random возвращает значение, не превышающее максимальное. Введите 32-битное целое число или число с плавающей запятой двойной точности или объект, который можно преобразовать в целое число или число двойной точности, например числовую строку ("100"). Значение Maximum должно быть больше (не равно) значению Minimum.

Если значение Maximum или Minimum является числом с плавающей запятой, командлет Get-Random возвращает случайное число с плавающей запятой.

Если значение Minimum является числом с плавающей запятой двойной точности, значение Maximum по умолчанию равно Double.MaxValue. В противном случае по умолчанию используется значение Int32.MaxValue (2 147 483 647 или 0x7FFFFFFF).

Обязательно?

false

Позиция?

1

Значение по умолчанию

Int32.MaxValue

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-Minimum <Object>

Задает минимальное значение случайного числа. Введите 32-битное целое число или число с плавающей запятой двойной точности или объект, который можно преобразовать в целое число или число двойной точности, например числовую строку ("100"). Значение по умолчанию — 0 (нуль).

Значение Minimum не должно превышать значения Maximum. Если значение Maximum или Minimum является числом с плавающей запятой, командлет Get-Random возвращает случайное число с плавающей запятой.

Обязательно?

false

Позиция?

named

Значение по умолчанию

0

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-SetSeed <int>

Задает начальное значение для генератора случайных чисел. Это начальное значение будет использоваться для текущей команды и для всех последующих команд Get-Random в текущем сеансе до установки нового значения SetSeed или завершения сеанса. Невозможно вернуть начальное значение к своему значению по умолчанию, получаемому на основании показаний часов.

Параметр SetSeed является необязательным. По умолчанию командлет Get-Random использует для получения начального значения системные часы. Поскольку при задании значения SetSeed результат выполнения команды не является строго случайным, этот параметр обычно используют в случаях, когда требуется воспроизвести определенную ситуацию, например при отладке или анализе скриптов, включающих команды Get-Random.

Обязательно?

false

Позиция?

named

Значение по умолчанию

System clock

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

<CommonParameters>

Данный командлет поддерживает общие параметры -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer и -OutVariable. Дополнительные сведения см. в разделе about_Commonparameters.

Ввод и вывод

Входным типом является тип объектов, которые можно передавать командлету по конвейеру. Возвращаемым типом является тип объектов, возвращаемых командлетом.

Входные данные

System.Object

Командлету Get-Random можно передать один или несколько объектов по конвейеру. Командлет Get-Random случайным образом выбирает значения из переданных по конвейеру объектов.

Выходные данные

System.Object

Командлет Get-Random возвращает целое число или число с плавающей запятой или объект, случайным образом выбранный из переданной коллекции.

Примечания

Командлет Get-Random устанавливает начальное значение для каждого сеанса на основании показаний системных часов в момент запуска сеанса.

Пример 1

C:\PS>get-random

3951433

Описание
-----------
Эта команда получает случайное целое значение в интервале от 0 (нуля) до значения Int32.MaxValue.






Пример 2

C:\PS>get-random -maximum 100

47

Описание
-----------
Эта команда получает случайное целое значение в интервале от 0 (нуля) до 99.






Пример 3

C:\PS>get-random -minimum -100 -maximum 100

-56

Описание
-----------
Эта команда получает случайное целое значение в интервале от -100 до 99.






Пример 4

C:\PS>get-random -min 10.7 -max 20.93

18.08467273887

Описание
-----------
Эта команда получает случайное число с плавающей запятой, больше или равное 10,7 и меньше 20,92.






Пример 5

C:\PS>get-random -input 1, 2, 3, 5, 8, 13

8

Описание
-----------
Эта команда получает случайным образом выбранное число из заданного массива.






Пример 6

C:\PS>get-random -input 1, 2, 3, 5, 8, 13 -count 3

3
1
13

Описание
-----------
Эта команда получает три случайным образом выбранных числа из массива в случайном порядке.






Пример 7

C:\PS>get-random -input 1, 2, 3, 5, 8, 13 -count ([int]::MaxValue)

2
3
5
1
8
13

Описание
-----------
Эта команда возвращает все элементы коллекции в случайном порядке. Значение параметра Count равно статическому свойству MaxValue целочисленного массива. 

Чтобы вернуть всю коллекцию в случайном порядке, введите любое число, превышающее количество элементов в коллекции или равное ему.






Пример 8

C:\PS>get-random -input "red", "yellow", "blue"

yellow

Описание
-----------
Эта команда возвращает случайное значение из коллекции, элементы которой не являются числами.






Пример 9

C:\PS>get-process | get-random

Handles  NPM(K)	PM(K)	WS(K) VM(M)   CPU(s)	 Id ProcessName
-------  ------	-----	----- -----   ------	 -- -----------
	144	 4	 2080		488	36	 0.48   3164 wmiprvse

Описание
-----------
Эта команда получает случайным образом выбранный процесс из коллекции запущенных на компьютере процессов.






Пример 10

C:\PS>get-content servers.txt | get-random -count (get-content servers.txt).count | foreach {invoke-expression -computer $_ -command 'get-process powershell'}

Описание
-----------
Эта команда в случайном порядке выполняет команду для нескольких удаленных компьютеров.






Пример 11

C:\PS>get-random -max 100 -setseed 23


# Commands with the default seed are pseudorandom
PS C:\ps-test> get-random -max 100
59
PS C:\ps-test> get-random -max 100
65
PS C:\ps-test> get-random -max 100
21

# Commands with the same seed are not random
PS C:\ps-test> get-random -max 100 -setseed 23
74
PS C:\ps-test> get-random -max 100 -setseed 23
74
PS C:\ps-test> get-random -max 100 -setseed 23
74

# SetSeed results in a repeatable series
PS C:\ps-test> get-random -max 100 -setseed 23
74
PS C:\ps-test> get-random -max 100
56
PS C:\ps-test> get-random -max 100
84
PS C:\ps-test> get-random -max 100
46
PS C:\ps-test> get-random -max 100 -setseed 23
74
PS C:\ps-test> get-random -max 100
56
PS C:\ps-test> get-random -max 100
84
PS C:\ps-test> get-random -max 100
46

Описание
-----------
В этом примере показан результат применения параметра SetSeed. Поскольку при задании значения SetSeed результат выполнения команды не является случайным, этот параметр обычно используют в случаях, когда требуется воспроизвести определенную ситуацию, например при отладке или анализе скриптов.






Пример 12

C:\PS>$files = dir -path c:\* -recurse

C:\PS> $sample = $files | get-random -count 50

Описание
-----------
Эти команды получают случайным образом выбранный набор из 50 файлов на диске C: локального компьютера.






Пример 13

C:\PS>get-random 10001

7600

Описание
-----------
Эта команда получает случайное целое число меньше 10001. Поскольку параметр Maximum имеет позицию 1, имя этого параметра можно опустить, если значение относится к первому или единственному не указанному параметру в команде.