Как получить раздел VM VID только для Running VM - PullRequest
0 голосов
/ 08 апреля 2020

Простой вопрос синтаксиса, пожалуйста. Я не понимаю это правильно. Пожалуйста, помогите:

Здесь перечислены VID виртуальной машины как для работающей, так и для приостановленной виртуальной машины.

Get-Counter '\Hyper-V VM VID Partition(*)\*'

. Здесь перечислены все работающие виртуальные машины:

$g = Get-VM | Where-Object {$_.State -eq 'Running'} | Select-Object -Property Name

. Get-Counter '\Hyper-V $g VID Partition(*)\*' может работать, но синтаксис неверен. Как я могу объединить два и получить VID виртуальной машины только для запуска виртуальных машин, пожалуйста?

Ответы [ 2 ]

1 голос
/ 08 апреля 2020

Я думаю, вам может понадобиться ForEach-Object. Что-то вроде:

$g = Get-VM | Where-Object {$_.State -eq 'Running'} | 
     ForEach-Object { Get-Counter -ComputerName $_.Name -Counter '\Hyper-V VM VID Partition(*)\*'}

Сам не могу попробовать ..

0 голосов
/ 09 апреля 2020

Я наконец понял, что нет способа сделать это в одной команде. Итак, вот как я решил:

pPipe1 = _wpopen(L"powershell -Command \"Get-Counter '\\Hyper-V VM VID Partition(*)\\*'\"", L"rt")

Это даст мне полный список всех ID запущенных и приостановленных ВМ socketID. Затем я делаю список приостановленных виртуальных машин.

pPipe2 = _wpopen(L"powershell -Command \"Get-VM | Where-Object {$_.State -eq 'Paused'};\" ",  L"rt" )

Используя оба канала, я отфильтровываю приостановленные, и у меня есть список работающих виртуальных машин с их идентификатором сокета.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...