SCVMM 2008 R2– Проверяем версию компонент интеграции

imageВ консоли SCVMM 2008 R2 на закладке Hosts можно видеть текущую версию компонент виртуализации если включить отображение колонки Virtualization Software Version, чего не скажешь об уровне виртуальных машин, где визуально с помощью этой консоли определить то какая версия компонент интеграции установлена внутри виртуальных машин не представляется возможным. Для того чтобы попытаться получить данную информацию в сводном виде воспользуемся советом от Peter Noorderijk из заметки Hyper-v.nu — How to check the version of the Integration Components. Скрипт взят за основу, и немного расширен, а именно:

  • Добавлена загрузка PSSnapin VMM (на тот случай если скрипт выполняется не на сервере VMM)
  • Информация о хостах виртуализации берётся не из файла а из данных сервера VMM, к которому мы предварительно подключаемся.
  • Виртуальные машины с версией компонент интеграции не соответствующей номеру, указанному в переменных, — выделяются красным цветом для облегчения визуального анализа

# Блок переменных

# $VMMSrv — Имя сервера SCVMM на котором будут выбраны все хосты виртуализации и их VM для анализа

# $ICCurrentVer — Текущая версия компонент интеграции которая должна быть установлена на VM

#

$VMMSrv = "KOM-SCVMM.holding.com"

$ICCurrentVer = "6.1.7601.17514"

#

# Подгружаем оснастку PS VMM для работы с объектами SCVMM

#

$VMMMod = "Microsoft.SystemCenter.VirtualMachineManager"

If ((Get-PSSnapin -Name $VMMMod -ErrorAction SilentlyContinue) -eq $null)

{

    Add-PSSnapin $VMMMod

}

#

# Функция получения и вывода сведений о компонентах интеграции на VM определённого хоста

#

Function Get-IntegrationServicesVersion ($HVhost = $(Throw "HVHost required"))

 {

 $kvps = Get-WmiObject -Namespace rootvirtualization `

 -ComputerName $HVHost `

 -Query "Select GuestIntrinsicExchangeItems From Msvm_KvpExchangeComponent"

 Foreach ($kvp in $kvps)

 {

 $vmkvp = $Kvp.GuestIntrinsicExchangeItems

 $VMICvArray = $vmkvp | Select-Object `

 @{Label="VMName";Expression={([xml]$vmkvp[0]).instance.property[1].value}},`

 @{Label="ICVersion";Expression={([xml]$vmkvp[14]).instance.property[1].value}} -first 1

 Foreach ($VMICv in $VMICvArray)

      {

            If ($ICCurrentVer -ne $VMICv.ICVersion) {

            Write-Host "IC ver.: " $VMICv.ICVersion " on " $VMICv.VMName -ForegroundColor Red

            } Else {

            Write-Host "IC ver.: " $VMICv.ICVersion " on " $VMICv.VMName

            }

      }

 }

 }

#

# Блок основного вывода

#

$VMHosts = Get-VMMServer -ComputerName $VMMSrv | Get-VMHost | Sort -Property "Name"

Foreach ($HVhost in $VMHosts) {

Write-Host "`nHyper-V Host: " $HVhost "`n" -ForegroundColor Green

Get-IntegrationServicesVersion $HVhost

}

    Результат работы скрипта будет выглядеть примерно так:

    image

    Примечание:

    Скрипт не выводит информацию о виртуальных машинах, которые находятся в выключенном состоянии.

    Только один комментарий Комментировать

    1. Баф /

      Вы издеваетесь?!

      Где вы были всего несколько дней назад… Я так долго искал рабочий плагин, что пришлось делать самому :)
      http://bafff.ru/blog/?p=2974

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