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

时间:2015-06-10 09:17:46

标签: powershell virtual-machine port hyper-v mirroring

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

例如:

Get-VM -PortMirroring Source

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

2 个答案:

答案 0 :(得分: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 
       }
   }
}

答案 1 :(得分:0)

这对我有用:

get-vm | Get-VMNetworkAdapter | Where-Object {$_.PortMirroringMode -eq 'Source'}