通过端口镜像设置PowerShell列出所有VM

问题描述 投票:1回答:2

我正在寻找一种方法,通过使用PowerShell设置的镜像类型列出计算机上的所有VM。

例如:

Get-VM -PortMirroring Source

我将看到所有具有端口镜像的网络适配器设置为Source的VM。但我知道Get-VM不会将PortMirroring作为参数,所以我想知道是否有解决方法?

powershell virtual-machine port hyper-v mirroring
2个回答
1
投票

这并不容易,因为PortMirroring不是VM的属性,而是其网络适配器的属性。您需要迭代VM的网络适配器并输出具有至少1个将PortMirroringMode设置为“Source”的适配器的VM。

$vms=get-vm
$filteredVMs=@()
foreach ($vm in $vms) { 
   $nas=get-vmnetworkadapter -vm $vm # adapter list
   foreach ($na in $nas) {
       if ($na.PortMirroringMode -eq 'Source') {
           $filteredVMs+=$vm
           break 
       }
   }
}

0
投票

这对我有用:

get-vm | Get-VMNetworkAdapter | Where-Object {$_.PortMirroringMode -eq 'Source'}
© www.soinside.com 2019 - 2024. All rights reserved.