【问题标题】:How to find IpAddress of a virtual machine programmatically from hypervisor?如何从管理程序以编程方式查找虚拟机的 IP 地址?
【发布时间】:2011-12-20 15:03:21
【问题描述】:

我正在使用 HyperV WMI 提供程序来更新虚拟机的配置/设置(如硬件、磁盘等)

  1. 如何从 HyperV 获取 VM 的 IpAddress?

  2. 如何在 VMWare 中做同样的事情?

问候, 梦想家!

【问题讨论】:

  • 对于 VMWare,您可以查看 PowerCli Cmdlets

标签: powershell wmi vmware powershell-2.0 hyper-v


【解决方案1】:
  1. This article 描述了如何获取虚拟机的 IP 地址 使用 Powershell 的 Hyper-V (Windows 2008 R2 Hyper-V) 计算机。
  2. 使用 PowerCli:(get-vm <name of your vm>).guest.ipaddress

【讨论】:

    【解决方案2】:

    对于 Hyper-V,这就是我通常从主机箱中提取 IP 的方式。

    $vm = Get-WmiObject -computerName "." -NameSpace  "Root\Virtualization"   -query "SELECT * FROM Msvm_KvpExchangeComponent" #pulls VM WMI object ExchangeComponents
    $vmitems = $vm.GuestIntrinsicExchangeItems 
    $ipitem = $vmitems[-4]#yay! a hack that relies on XML schemas! 
    $xmlip = [xml]$ipitem #convert string format to XML 
    $ipaddr = $xmlip.INSTANCE.PROPERTY[1].VALUE #playing with XML schemas again hopefully reliably
    

    这不是最整洁/最干净/最好的代码,但它是获取该信息的一种方式。

    【讨论】:

    • 此查询必须以管理员身份运行(至少在 Windows 8 上)
    【解决方案3】:

    这是我制作的另一种变体,用于演示一种更强大的方法来查找给定名称的值。这不依赖于 Caption、Data、Description、ElementName、Name 或 Source 架构中的特定相对顺序

    $vmParams = @{
      NameSpace = 'Root\Virtualization';
      Query = 'SELECT * FROM Msvm_KvpExchangeComponent' #pulls VM WMI object ExchangeComponents
    }
    
    Get-WmiObject @vmParams |
      % {
        $xml = [Xml]"<properties>$($_.GuestIntrinsicExchangeItems)</properties>"
        $xml.properties.INSTANCE.Property |
          % {
            $value = ($_.ParentNode.Property | ? { $_.Name -eq 'Data' }).VALUE
            if ($_.Value -eq 'FullyQualifiedDomainName')
            {
              Write-Host "Host: $($value)"
            }
            if ($_.Value -eq 'RDPAddressIPv4')
            {
              Write-Host "RDP Address: $($value)"
            }
          }
      }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-10
      • 2019-07-10
      • 2018-11-06
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      相关资源
      最近更新 更多