如何获取在Hyper-V上运行的所有虚拟机的IP地址

20

有没有用PowerShell获取所有运行中虚拟机IP地址的方法?我已经尝试了以下方法:

Get-VM | ?{$_.State -eq "Running"} | Select -ExpandProperty networkadapters

Get-VM | ?{$_.State -eq "Running"} | Get-VMNetworkAdapter | Select VMName, IPAddresses

我能获取虚拟机列表,但是没有获得它们的任何IP地址。

2个回答

32

3
需要安装集成服务。我在 Linux 客户机上没有太多成功地使集成服务正常工作(而不是降级)。 - ivica
似乎无法在 CentOS 7 (最小)Linux Hyper-V 客户机上正常工作。 "ip addr show" 似乎可以从 Linux 控制台中运行。 - SirGeekALot
下面答案中的arp -a技巧适用于Linux客户机。结合MAC地址匹配,它是有效的。 - Seva Alekseyev

19

无论是在PowerShell还是Windows批处理中,您都可以使用arp -a列出Windows机器上所有内容的IP地址(实际和Hyper-V机器都会列出)。 您可以根据MAC地址进行过滤,以获取准确的IP地址。

arp -a | findstr 00-15-5d-19-73-00
  172.17.210.62         00-15-5d-19-73-00     static

6
聪明。在PowerShell中,您还可以执行例如Get-NetNeighbor -LinkLayerAddress 00-15-5d-*(通配符起作用,或者当然您也可以直接输入完整的MAC地址)。 - mwfearnley

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接