С помощью командлета Get-Random можно получить случайное число из заданного диапазона, а также выбрать случайный объект из коллекции объектов. Введенный без параметров, Get-Random вернет случайное число в диапазоне от 0 до 2,147,483,647 (максимально возможное 32-битное число, Int32.MaxValue).
При необходимости можно ограничить диапазон, из которого будет выбрано число. Так зададим верхний диапазон равным 1000:
Get-Random -Maximum 1000
А нижний ограничим числом 100:
Get-Random -Maximum 1000 -Minimum 100
Названия параметров можно сокращать, например так:
Get-Random -max 1000 -min 100
Примечание. Параметр Maximum является дефолтным, поэтому его название вообще можно не указывать. Остальные параметры необходимо указывать в явном виде. Т.е. можно писать Get-Random 1000, но нельзя Get-Random 1000 100.
Значение можно выбирать не только из целых чисел. Так следующая команда вернет случайное число с плавающей запятой в диапазоне от 0.1 до 9.9:
Get-Random — Maximum 9.9 -Minimum 0.1
Задать коллекцию объектов можно параметром InputObject. Следующая команда выведет случайное число из списка:
Get-Random -InputObject 1,2,3,4,6,7,9
Список чисел можно задать и так:
Get-Random -InputObject (1..10)
Можно выбрать не один объект, а несколько. Например следующая команда выдаст из заданного списка три случайных числа:
Get-Random -InputObject (1..10) -Count 3
Чтобы получить всю коллекцию в произвольном порядке, надо указать значение Count, равное или превышающее количество элементов в коллекции. Как вариант, можно указать значение ([int]::MaxValue). Следующая команда возвращает все числа от 1 до 10 в случайном порядке:
Get-Random -InputObject (1..10) -Count ([int]::MaxValue)
По умолчанию Get-Random использует для получения начального значения для генератора случайных чисел системные часы. При необходимости это значение можно задать вручную, с помощью параметра SetSeed:
Get-Random -Maximum 100 -SetSeed 10
При задании значения SetSeed результат будет не совсем случайным, а главное — его всегда можно повторить.
Get-Random может работать как с числами, так и с любыми другими объектами. Так например, можно вывести случайное значение из набора слов:
Get-Random -InputObject ″one″,″two″,″three″
Получить случайный процесс из списка процессов, запущенных на компьютере:
$proc = Get-Process
Get-Random -InputObject $proc
Или вывести произвольный фрагмент текста из «Властелина колец»:
$content = Get-Content C:\LordOfTheRing.txt
Get-Random -InputObject $content
В общем, возможностей у Get-Random довольно много, осталось только придумать им применение 🙂