Inicial > Microsoft > Hyper-V WMI: Criando uma imagem Thumbnail das VM’s

Hyper-V WMI: Criando uma imagem Thumbnail das VM’s

 
O Hyper-V tem uma API WMI que permite que você crie imagens thumbnails de máquinas virtuais que estão rodando ou pausadas. 
 
Para fazer isso você precisa invocar o  GetVirtualSystemThumbnailImage passando uma instância Msvm_VirutalSystemSettingData como referência, além do tamanho da imagem que você deseja

Windows%20Server%202008%20-%20x64_running_thumbWindows%20Server%202008%20-%20x64_saved_thumb

 
[System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")

$HyperVParent = "localhost"
$HyperVGuest = "Hyperv-Host"
$ImagePath = "c:Temp"
$xRes = 640
$yRes = 480

$VMManagementService = Get-WmiObject -class "Msvm_VirtualSystemManagementService" -namespace "rootvirtualization" -ComputerName $HyperVParent
$Vm = Get-WmiObject -Namespace "rootvirtualization" -ComputerName $HyperVParent -Query "Select * From Msvm_ComputerSystem Where ElementName=’$HyperVGuest’"
$VMSettingData = Get-WmiObject -Namespace "rootvirtualization" -Query "Associators of {$Vm} Where ResultClass=Msvm_VirtualSystemSettingData AssocClass=Msvm_SettingsDefineState" -ComputerName $HyperVParent
$RawImageData = $VMManagementService.GetVirtualSystemThumbnailImage($VMSettingData, "$xRes", "$yRes") #| ProcessWMIJob $VMManagementService.PSBase.ClassPath "GetVirtualSystemThumbnailImage"

$VMThumbnail = new-object System.Drawing.Bitmap($xRes, $yRes, [System.Drawing.Imaging.PixelFormat]::Format16bppRgb565)

$rectangle = new-object System.Drawing.Rectangle(0,0,$xRes,$yRes)
[
System.Drawing.Imaging.BitmapData] $VMThumbnailBitmapData = $VMThumbnail.LockBits($rectangle, [System.Drawing.Imaging.ImageLockMode]::WriteOnly, [System.Drawing.Imaging.PixelFormat]::Format16bppRgb565)
[
System.Runtime.InteropServices.marshal]::Copy($RawImageData.ImageData, 0, $VMThumbnailBitmapData.Scan0, $xRes*$yRes*2)
$VMThumbnail.UnlockBits($VMThumbnailBitmapData);

$VMThumbnail
$VMThumbnail.Save("$ImagePath$HyperVGuest.jpg")

Thanks to Taylor Brow.

É isso.
Alessandro Cardoso 

Categorias:Microsoft
  1. Nenhum comentário ainda.
  1. No trackbacks yet.

Deixe um comentário