PowerShell - Get VMName, VMNetworkAdapter, SwitchName, IsLegacy, Vlanlist

Пока я понял, что конвейерная передача этих командлетов даст мне все, что мне нужно, КРОМЕ "VLANLIST"

Get-VM | Get-VMNetworkadapter | ft VMname,NAme,SwitchName,isLegacy -Autosize

Я был бы полностью удовлетворен если бы это также могло сказать мне, с каким vlan работает сетевой адаптер для каждой виртуальной машины.

Этот командлет делает то, что я хочу: Get-VMNetworkAdapterVlan

Но, конечно, он не дает мне переключателя или islegacy values.

Я не могу найти способ связать этот командлет с тем, который я представил ранее.

Какая комбинация работает?

0
задан 19 June 2019 в 21:00
1 ответ

Вам необходимо создать настраиваемый объект со свойствами, которые вы ищете, с помощью отдельных команд:

$virtualmachines = Get-VM 

$vmvlans = Get-VMNetworkAdapterVlan -VM $virtualmachines 
$vmnetworkinfo = @()

foreach ($virtualmachine in $virtualmachines)
{


                $virtualnetworkadapters = Get-VMNetworkAdapter -VM $virtualmachine 
                $vmvlans = Get-VMNetworkAdapterVlan -VM $virtualmachine 
                $vmproperties = New-Object -TypeName PSObject
                $vmproperties | Add-Member -MemberType NoteProperty -Name VMName -Value $virtualnetworkadapters.vmname 
                $vmproperties | Add-Member -MemberType NoteProperty -Name Name -value  $virtualnetworkadapters.Name
                $vmproperties | Add-Member -MemberType NoteProperty -Name SwitchName -Value $virtualnetworkadapters.switchname
                $vmproperties | Add-Member -MemberType NoteProperty -Name isLegacy -Value $virtualnetworkadapters.islegacy
                $vmproperties | Add-Member -MemberType NoteProperty -name VlanList -value $vmvlans.accessvlanid
                $vmnetworkinfo += $vmproperties

}

$vmnetworkinfo | ft VMname,Name,SwitchName,isLegacy,VlanList

Возможно, вам может потребоваться изменить свойство Vlan, которое вы ищете, в зависимости от вашей среды, конечно.

0
ответ дан 23 November 2019 в 23:21

Теги

Похожие вопросы