Заметки о Windows и других программных продуктах Microsoft...

Мониторинг задач в VMM с помощью переменной JobVariable

Мониторинг задач в VMM с помощью переменной JobVariable

Большинство задач в Virtual Machine Manager гораздо быстрее выполнять из консоли PowerShell, однако при этом невозможно отслеживать их состояние и прогресс выполнения. Это не очень удобно при выполнении длительных по времени задач, например таких, как миграция или создание виртуальных машин.

Дело в том, что команды в VMM запускаются в фоновом режиме в виде фонового задания (job), соответствено напрямую увидеть процесс выполнения невозможно. Однако большинство командлетов имеют параметр JobVariable, в который можно прописать имя переменной. В эту переменную будет помещено выполняемое задание, и обращаясь к этой переменной можно узнать его состояние.

Для примера создадим небольшой скрипт, который будет создавать виртуальную машину и показывать процесс выполнения. Сначала импортируем модуль VMM:

Import-Module virtualmachinemanager

Затем определяем сервер VMM, хост, на котором будет размещаться ВМ и путь (папку) для размещения ее файлов:

$VMMServer = Get-SCVMMServer ″SRV2″
$VMHost = Get-SCVMHost -ComputerName ″SRV3″
$VMPath = ″E:\VM″

Вводим имя ВМ и шаблон, из которого она будет развернута:

$OSName = Read-Host ″Enter OS name″
$Template = Get-SCVMTemplate -Name $OSName
$VMName = Read-Host ″Enter VM name″

Запускаем создание новой ВМ, указывая переменную JobVariable с именем NewVM:

$CreateVM = New-SCVirtualMachine -Name $VMName -Template $Template -VMHost $VMHost -Path $VMPath -JobVariable ″NewVM″ -RunAsynchronously

И отслеживаем создание ВМ с помощью командлета Write-Progress:

While ($NewVM.status -eq ″Running″)
{
Write-Progress -Activity ″VM creating…″ -Status $NewVM.progress
Start-Sleep -Seconds 5
}

Объединяем все в скрипт, запускаем его и в результате получим примерно такую картину.

мониторинг создания ВМ в VMM

 

Конечно не так наглядно, как из графической оснастки, но достаточно информативно.

 
 
Комментарии

Пока нет комментариев.

Ответить