我尝试使用此命令从 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 库。这可以为你节省一些时间。