【问题标题】:Is there any possibility to get VMWARE HOST computer name from GUEST workstation without changing things on HOST? [closed]是否有可能从 GUEST 工作站获取 VMWARE HOST 计算机名称而不更改 HOST 上的内容? [关闭]
【发布时间】:2009-05-24 07:00:08
【问题描述】:

假设我有 VMWARE 工作站(来宾 Windows 并由 Windows 托管)。 有没有可能的方法来接收主机的主机名? 并且无需像 this link 那样更改主机上的内容。

【问题讨论】:

标签: vmware vmware-workstation


【解决方案1】:

我通过 machine.id 将字符串从主机传递给来宾来做到这一点。它确实需要在主机上进行更改(也在每个 VM 的 .vmx 文件中),并且它不会自动发现主机的主机名,但它可以工作。在主机上,关闭相关 VM 的电源,编辑 VM 的 .vmx 文件。查找或添加如下所示的行:

machine.id = "<string>"

设置<string> 等于某个标识字符串,它会告诉您服务器的名称。这可以是主机名,也可以是它的缩短版本,或者如果您愿意,甚至可以是一些难以理解的代码,只要您知道它的含义。但是,如果 .vmx 文件有一行设置

isolation.tools.machine.id.get.disable = TRUE

传递字符串不起作用,因此如果存在此行,您可能需要删除/注释它或将值设置为FALSE

在来宾操作系统上,如果您安装了 VMware Tools,则可以执行此操作(对于 Linux 来宾):

vmware-guestd --cmd 'machine.id.get'

或者(对于 Windows 来宾,我没有尝试过):

VMwareService --cmd machine.id.get

【讨论】:

  • 没有彻底尝试过:“新”命令在Linux下似乎是vmware-rpctool 'machine.id.get'
【解决方案2】:

我知道这是一个旧线程,但是如果有人仍然对“thomas lee”的回答感兴趣,上面的答案适用于最新版本的 VMWare 工作站VMWare fusion。检索值的新命令是

rpctool machine.id.get

在为 Fusion 部署托管 VM 时使用它,以便在首次启动时自动设置机器名称。谢谢托马斯.....

【讨论】:

    【解决方案3】:

    如果您能够在客户操作系统上安装 PowerCLI,则可以通过查找运行脚本的 VM 来访问一些 ESX 主机信息:

    Connect-VIServer -Server <myvcenterserver>
    
    $myVM = Get-VM -Name $(dir env:COMPUTERNAME).Value
    
    $myVM.Host.Name
    

    注意:这假设您的来宾与 vCenter 中的虚拟机名称具有相同的主机名。

    对于 Linux 来宾(OP 声明为 Windows),我使用 pyVmomi Python 模块执行类似的查找。

    【讨论】:

      【解决方案4】:

      原则上 - 不。

      但是,可能存在(或将存在)某些允许恶意客户操作系统绕过虚拟机沙箱的漏洞。例如,阅读Blue Pill。您还可以在研究人员自己的博客Invisible Things by Joanna Rutkowska 上阅读更多详细信息。
      当然,这些只是概念验证,但在软件中实现的任何安全性都会受到软件错误的影响......

      【讨论】:

        【解决方案5】:

        我认为可能有很多方法可以做到这一点,并且可以想到两个: 一种是在客户机中安装 ViX,连接到主机而不指定主机名,(谷歌“ViX 参考”然后查看“常见任务”)然后使用Vix_CopyFileFromHostToGuest() 复制文件/etc/vmware/esx.conf。 另一种方法是创建从访客到主机的某种网络连接(我使用了ssh,但如果您不知道主机名或 IP,您仍然可以像上面那样进行 ViX 连接并调度一个需要while) 然后在客人中说netstat -anetstat 输出将包含主机名,如果它是可解析的。

        【讨论】:

        • 最好提供一个链接,而不是假设人们在谷歌搜索后最终会到达您想到的同一个地方。
        【解决方案6】:

        您实际上在网络上有两台计算机。如果您对虚拟 NIC 使用私有网络/NAT 样式设置之一,则主机具有相当可预测的 IP 地址,因此您可以使用许多远程管理方法中的任何一种来询问它,就像您使用其他任何方法一样.

        如果只有一个客户操作系统,那么只需尝试使用与客户 IP 地址相同的前导 24 位的每个 IP 地址,就可以避免猜测地址。

        【讨论】:

          【解决方案7】:

          在 vSphere 中

          1. 点击您的主机
          2. 单击配置选项卡
          3. 在软件部分点击 DNS 和路由

          【讨论】:

          • 我意识到这不是来自来宾操作系统,但如果您尝试从 VM 来宾主机获取该信息,那么您不是管理员。您应该可以通过 vCenter 访问 vSphere。
          猜你喜欢
          • 1970-01-01
          • 2013-05-11
          • 2013-10-02
          • 1970-01-01
          • 2012-01-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多