使用powershell在hyper-v(给定的VMname)上获取VM的主机名

时间:2014-02-25 06:36:05

标签: .net powershell powershell-v3.0

我的Hyper-v有虚拟机。 Hyper-v只知道VM名称。我想使用powershell在hyper-v上提取主机名(我们通过在虚拟机中的cmd上运行'hostname'命令获得)。

2 个答案:

答案 0 :(得分:1)

一种方法是获取VM的IP地址,然后您可以查询主机名。我使用单个命令来查找主机名:

$VMName = "TestVMName"
$host_name = ((Get-VM | where { $_.Name -eq $VMName }) | Select -ExpandProperty NetworkAdapters).ipaddresses[0] | ForEach-Object {([system.net.dns]::GetHostByAddress($_)).hostname }

确保您的虚拟机在网络中可被发现。

答案 1 :(得分:0)

您是否在访客上安装了集成组件?如果不这样做,请尽快安装。在IC是最新的之后,您可以从VM的注册表中查询主机信息,如此,

gp 'HKLM:\SOFTWARE\Microsoft\Virtual Machine\Guest\Parameters'
HostName                           : hyperv100.contoso.local
HostingSystemEditionId             : 8
...
PhysicalHostName                   : hyperv100
PhysicalHostNameFullyQualified     : hyperv100.contoso.local
VirtualMachineName                 : guest101

(gp 'HKLM:\SOFTWARE\Microsoft\Virtual Machine\Guest\Parameters').PhysicalHostName
hyperv100

(gp 'HKLM:\SOFTWARE\Microsoft\Virtual Machine\Guest\Parameters').PhysicalHostNameFullyQualified
hyperv100.contoso.local

此外,请阅读描述IC registry keys

的文章
相关问题