PowerCLIВиртуализация VMware

Меню для 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).

 

Related Post

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

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

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