我看了又看,但可能忽略了。我有一个虚拟球体云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 的列表: 获取虚拟机列表