按端口镜像设置列出所有 VM PowerShell
List all VM's by their port mirroring settings PowerShell
我正在寻找一种方法来按虚拟机使用 PowerShell 设置的镜像类型列出机器上的所有虚拟机。
例如:
Get-VM -PortMirroring Source
我会看到所有具有网络适配器且端口镜像设置为源的虚拟机。
但是我知道 Get-VM 不会将 PortMirroring 作为参数,所以我想知道是否有解决方法?
这并不容易,因为 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
}
}
}
这对我有用:
get-vm | Get-VMNetworkAdapter | Where-Object {$_.PortMirroringMode -eq 'Source'}
我正在寻找一种方法来按虚拟机使用 PowerShell 设置的镜像类型列出机器上的所有虚拟机。
例如:
Get-VM -PortMirroring Source
我会看到所有具有网络适配器且端口镜像设置为源的虚拟机。 但是我知道 Get-VM 不会将 PortMirroring 作为参数,所以我想知道是否有解决方法?
这并不容易,因为 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
}
}
}
这对我有用:
get-vm | Get-VMNetworkAdapter | Where-Object {$_.PortMirroringMode -eq 'Source'}