如何使用 Powershell 从 Hyper-V 2008 R2 节点获取 IP 地址和 Vlan ID

如何使用 Powershell 从 Hyper-V 2008 R2 节点获取 IP 地址和 Vlan ID

我尝试使用此命令从 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 上实现这一点。因此可能需要对命令进行一些更改。

答案1

由于没有 Hyper-V 2012 可供测试,我至少可以回答您问题的 PowerShell 部分:

Get-VM | select -ExpandProperty networkadapters |
    Foreach-Object {
        $_ | AddMember -MemberType NoteProperty -Name VLAN -PassThru
            -Value ($_ | Get-VMNetworkAdapterVlan).AccessVlanID
    } | ft vmname, ipaddress, vlan

答案2

我不想在这里直接插入链接,但你应该看看 James O'neils 的 Hyper-V 2008R2 PowerShell 库。这可以为你节省一些时间。

pshyperv.codeplex.com

相关内容