ESXI:从虚拟机(内部)机器本身获取机器名称?

ESXI:从虚拟机(内部)机器本身获取机器名称?

我看了又看,但可能忽略了。我有一个虚拟球体300虚拟机。vsphere 客户端中显示的每台机器名称实际上是每台机器的主机名(我手动完成了此操作)。这些机器有时必须更改其主机名。此时我希望有一种方法可以从机器本身获取/获取/读取客户机名称,然后如果存在不匹配,那么我会知道并在需要时修改机器名称。

那么,vmware-toolbox-cmd或者其他工具(来自 linux open-vm-tools)可以检索该信息,机器名称?

让我们举个例子。我有一台虚拟机,其主机名为 a22.test.com,我可以通过 ssh 连接到该机器。但在 vsphere 上,它的名称是 b34.test2.com 或其他名称。我有 300 多台机器处于这种不匹配的状态。虚拟机名称不符合主机名

答案1

您无法仅使用虚拟机内部的 VMware Tools 执行此操作。您需要连接并查询 vCenter,例如使用 PowerCLI。您可以从网络上的任何计算机执行此操作。以下 PowerCLI 代码应该可以解决问题:

Connect-VIServer vcenter-address
foreach ($vm in (get-vm)) { $vm.Name + ": " + $vm.ExtensionData.Guest.Hostname }

这会显示每个虚拟机的 vCenter 显示名称和内部主机名(由 VMware Tools 报告)。因此,这需要在虚拟机中运行 VMware Tools。

PowerCLI 也适用于 Powershell Core,因此如果您没有可用的 Windows 机器,您也可以在 Linux 上运行它。

答案2

您可以安装PowerCLI然后使用该Get-VMGuest命令。

看一下这个,获取所有虚拟机、名称、主机名、IP 的列表: 获取虚拟机列表

答案3

无需连接到 vCenter。

dmidecode -s system-serial-number
VMware-42 39 51 fb 85 54 7c 91-ac 25 e0 d5 f7 6b 13 b2

此序列号是 vCenter 的客户虚拟机“BIOS UUID”,尽管格式略有不同:

Bios UUID     :  423951fb-8554-7c91-ac25-e0d5f76b13b2

至少有了机器的 UUID,你就可以搜索你想要查找的内容。这主要是因为搞清楚哪台机器映射到 vCenter 中的什么位置。

摘自回答由此问题

相关内容