Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
This is from an internal question I replied to. This is a simply script given as a starting point that can be extended.
----------------------------------------------------------------------------------------------------------------------------------
I have a host that has 4 physical network cards, 3 of which are mapped to virtual switches that are External.
I would like to, programmatically,
(1) get these 3 virtual network adapters for the given host
PS C:\ > $virtnets = Get-VirtualNetwork -VMHost myhost PS C:\ > $virtnets.Count 5 PS C:\ > $virtnets | ft name Name ---- BLAH 3BLAH3 PRODUCTION Broadcom - Virtual Network Test1 |
(2) figure out how many VMs are connected to each of them
$vmhost = Get-VMHost | where {$_.Name -match "myhost"} $vmhost.VMs.Count 43 PS C:\> $count = 1 PS C:\> foreach($vm in $vmhost.VMs){foreach($vnic in $vm.VirtualNetworkAdapters) {if($virtnets -eq $vnic.virtualnetwork){Write-Host ("VM: " + $vm.Name + ", NIC: " + $vnic.VirtualNetwork + ", Count: " + $Count++)}}} VM: 32w2k8r2, NIC: Test1, Count: 1 VM: hectorl3, NIC: Test1, Count: 2 VM: VI3Servers, NIC: Test1, Count: 3 VM: vi3servers01, NIC: Test1, Count: 4 VM: vi3vc2501, NIC: Broadcom - Virtual Network, Count: 5 VM: VirtuozzoVM01, NIC: Test1, Count: 6 VM: VirtuozzoVM02, NIC: Test1, Count: 7 VM: VM_fromblank, NIC: Test1, Count: 8 VM: VM1_DUPMAC, NIC: Broadcom - Virtual Network, Count: 9 VM: VM1_DUPMAC, NIC: Broadcom - Virtual Network, Count: 10 VM: VMM2008R2RTM, NIC: Test1, Count: 11 VM: VMM2008R2TEST, NIC: Test1, Count: 12 VM: vmm2008test, NIC: Test1, Count: 13 VM: VMNIC, NIC: 3BLAH3, Count: 14 VM: VMNIC, NIC: BLAH, Count: 15 VM: VMNIC, NIC: PRODUCTION, Count: 16 PS C:\> |