Войти

Показать полную графическую версию : Get VM - исключить из списка Linux


breakfruit
28-07-2015, 13:18
Комрады, второй день бьюсь никак не могу.

Есть список вывода Get-VM
PS C:\Windows\system32> get-vm

Name State CPUUsage(%) MemoryAssigned(M) Uptime Status
---- ----- ----------- ----------------- ------ ------
adWindows 8.1 Off 0 0 00:00:00 Operating normally
CentOS 7 Off 0 0 00:00:00 Operating normally
Debian 8.0 Off 0 0 00:00:00 Operating normally
FreeBSD 10.1 Off 0 0 00:00:00 Operating normally
OpenSUSE 13.1 Off 0 0 00:00:00 Operating normally
Oracle Linux 7u1 Off 0 0 00:00:00 Operating normally
RHEL Server 7.0 Off 0 0 00:00:00 Operating normally
Ubuntu 14.04.2 LTS Off 0 0 00:00:00 Operating normally
WEBWindows Server 2012 R2 Off 0 0 00:00:00 Operating normally
WEBWS2012 - IIS Off 0 0 00:00:00 Operating normally
Wind_web_ows 8.1 - clone - 1 Off 0 0 00:00:00 Operating normally


Необходимо для скрипта выбрать только в Windows-based виртуалки. Как я понял, Get-VM такой способности не имеет, так как (ну, лично у меня) не получилось отфильтровать выборку в переменную. Может кто поможет?

Был бы очень признателен.

Kazun
28-07-2015, 14:23
Если установлен integration services в гостевой ОС, то можно получить данные через WMI. - http://blogs.msdn.com/b/taylorb/archive/2012/12/05/retrieving-the-ip-address-of-a-vm-in-hyper-v.aspx

Get-WmiObject -Namespace root\virtualization\v2 -Class Msvm_ComputerSystem -Filter "Caption='Virtual Machine'" | Foreach {
$vm = $_
$os = $null
try {
$vm.GetRelated("Msvm_KvpExchangeComponent").GuestIntrinsicExchangeItems | % {
$GuestExchangeItemXml = ([XML]$_).SelectSingleNode("/INSTANCE/PROPERTY[@NAME='Name']/VALUE[child::text()='OSName']")

if ($GuestExchangeItemXml -ne $null)
{
$os = $GuestExchangeItemXml.SelectSingleNode("/INSTANCE/PROPERTY[@NAME='Data']/VALUE/child::text()").Value
}
}
}
catch {
}
[pscustomobject]@{"Name"=$vm.ElementName;"OS"=$os}
}

breakfruit
28-07-2015, 14:25
Kazun, хороший воркэраунд, но не в случае, если оные отсутсвтуют внутри ВМ :\

breakfruit
04-08-2015, 18:03
И этот скрипт несовсем то, что нужно делает. Нужно именно фильтрацию организовать. Т.е. Выборка того, что нужно из списка ОСей




© OSzone.net 2001-2012