我尝试使用此命令从Hyper-V(Hyper-V 2012)节点获取IP地址:
Get-VM | select -ExpandProperty networkadapters | select vmname, ipaddress
问题是我只将输出的私有IP地址作为输出,而不是某些虚拟机的公有IP地址。 任何想法,为什么我有这个问题?
还有什么办法可以在我的虚拟机设置中获得相同的输出和Vlan ID? 为了从特定的虚拟机获得Vlan,我可以这样做
Get-VM 'Name of the VM' | Get-VMNetworkAdapterVlan | select AccessVlanId
所有这些东西都在Hyper-V 2012上,我还希望为Hyper-V 2008 R2做这个工作。 因此可能需要对命令进行一些更改。
没有Hyper-V 2012可供我testing,至less可以解决PowerShell问题的一部分:
Get-VM | select -ExpandProperty networkadapters | Foreach-Object { $_ | AddMember -MemberType NoteProperty -Name VLAN -PassThru -Value ($_ | Get-VMNetworkAdapterVlan).AccessVlanID } | ft vmname, ipaddress, vlan
我讨厌在这里引入链接,但是您应该查看适用于Hyper-V 2008R2的James O'Neils PowerShell库。 可以节省一些时间。
pshyperv.codeplex.com