2

I looked and looked but probably overlooked . I have a vsphere cloud with over 300 virtual machines. Each machine name as it appears in the vsphere client is actually the hostname of each machine (I have done this manually). Those machines sometimes have to change their hostname. At this time I hope there is a way to obtain/get/read the guest machine name from the machine itself, and then if there is a mismatch, then I'll know and modify the machine name when needed.

So, vmware-toolbox-cmd or other tool (from the linux open-vm-tools) can retrieve that info, the machine name ?

Let's take an example. I have a vm machine with it;s hostname a22.test.com I can ssh onto that machine. But on the vsphere it's name is b34.test2.com or some other name. And I have 300+ machines in this mismatched state. A vm name does not correspond to the hostname.

  • Do you have VMware Tools installed on all VMs? You will need to prepare for duplicate hostnames (e.g. when you clone a VM and the clone retains the old hostname, etc.) – Mircea Vutcovici Jun 24 '20 at 21:39
1

You cannot do this with VMware Tools alone from inside the VM. You need to connect to and query vCenter, e.g. with PowerCLI. And that you can do from any machine on the network. The following PowerCLI code should do the trick:

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

That shows the vCenter display name and the internal host name (as reported by VMware Tools) for each VM. So this requires VMware Tools running in the VMs.

PowerCLI is also available for Powershell Core, so you can also run this on Linux if you do not have any Windows machines available.

0

You can install PowerCLI and then use the Get-VMGuest command.

Have a look at this also, to get a list of all VMs, name, hostname, IP: get list of VMs

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.