Меню для PowerCLI скрипта.

Когда виртуальная инфраструктура достаточно большая, полный (подробный) вывод информации может быть крайне нецелесообразным. При этом после получении краткого отчета может возникнуть желание получить подробный вывод. А может и не возникнуть. Во всех этих случаях нет необходимости использовать несколько скриптов под каждый вывод, достаточно сделать меню.

Давайте возьмем командлет из статьи Получение версии VMFS и размера блока через PowerCLI и сделаем два варианты вывод информации:

  1. Какие версии VMFS используются в инфраструктуре с указанием числа  датасторе с каждой из них.
  2. Краткий вывод из п.1, а также список всех датасторе с указанием их версии VMFS.

Вывод размера блока я не убираю – пусть будет.

Для реализации меню используем

$selected_menu_item = Read-Host ‘Select menu item’

Switch($selected_menu_item){

А весь код выглядит так:

$Datastore = Get-Datastore | Get-View
Write-Host ‘1. Вывод только суммарной информации (количество датасторе, версия VMFS)’
Write-Host ‘2. Вывод суммарной информации, а также списка всех датасторе с указанием версии VMFS’
Write-Host ‘3. Отменить вывод и завершить скрипт’
Write-Host
$selected_menu_item = Read-Host ‘Select menu item’
Switch($selected_menu_item){
1{Write-Host Выбран пункт 1. “Вывод только суммарной информации (количество датасторе, версия VMFS”)’
$Datastore | Group-Object -Property {$_.Info.Vmfs.Version} | Select Name, Count | Sort-Object -Property Name}
2{Write-Host ‘Выбран пункт 2. “Вывод суммарной информации, а также списка всех датасторе с указанием версии VMFS”‘
$Datastore | Group-Object -Property {$_.Info.Vmfs.Version} | Select Name, Count | Sort-Object -Property Name
$Datastore | Select-Object Name,@{N=”VMFS version”;E={$_.Info.Vmfs.Version}},@{N=”BlocksizeMB”;E={$_.Info.Vmfs.BlockSizeMB}} | Sort-Object -Property “VMFS version” | Out-GridView
}
3{Write-Host ‘Вывод информации информацию отменен пользователем’}
default {Write-Host ‘Вывод информации информацию отменен пользователем’}
}

Для вывода используем командлет Out-GridView, который пересылает результаты выполнения команды в окно таблицы, в котором они отображаются в виде интерактивной таблицы. Он появился в 3-й версии Powershell, но получил особое развитие в 4-й. Для использования требуется Microsoft .NET Framework 3.5 с пакетом обновления 1 (SP1).

 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

Добро пожаловать в блог IT-пилот

Введите Ваш Email чтобы подписаться

Подписка оформлена!