如何从客户机内部可靠地确定 VMWare 客户机的硬件版本?

如何从客户机内部可靠地确定 VMWare 客户机的硬件版本?

我正在尝试确定多个 VMWare VM 的“硬件”版本。我无法访问 vSphere 控制台。

VMWare Tools 服务已安装,C:\Program Files\VMWare\VMWare Tools\vmtoolsd.exe --cmd "info-get"看起来很有希望,但是我找不到有关指定什么键名的任何详细信息。

是否有其他方法,例如查看 VMWare 设备驱动程序版本或者查询wmic

答案1

从理论上来说,你所要求的应该是可能的。

然而看起来 VMWare 并没有很好地实现它。

正如您所说,扩展选项应该可以通过 VMToolsd.exe 从客户机查询。但是它似乎不起作用。

vmtoolsd.exe --cmd "info-get virtualHW.version"

应该返回 vmx 文件中包含的硬件版本,但是却没有。

simonbaev 在此主题中发表的一篇帖子似乎突出了一个问题,需要更改虚拟机管理程序级别才能从客户机查询此信息: https://communities.vmware.com/message/2184934

$ vmware-cmd --config esxi-24 "[DS_104.24_150] LTSP2/LTSP2.vmx" setguestinfo myTest "hello world"  
setguestinfo(myTest hello world) = 1  
$ vmware-cmd --config esxi-24 "[DS_104.24_150] LTSP2/LTSP2.vmx" getguestinfo myTest  
getguestinfo(myTest) = hello world  
$ vmtoolsd --cmd "info-get guestinfo.myTest"  
No value found  
$ vmtoolsd --cmd "info-get myTest"  
Invalid key name supplied  
$ vmware-cmd --config esxi-24 "[DS_104.24_150] LTSP2/LTSP2.vmx" setguestinfo guestinfo.myTest "bla-bla-bla"  
setguestinfo(guestinfo.myTest bla-bla-bla) = 1  
$ vmware-cmd --config esxi-24 "[DS_104.24_150] LTSP2/LTSP2.vmx" getguestinfo guestinfo.myTest  
getguestinfo(guestinfo.myTest) = bla-bla-bla  
$ vmtoolsd --cmd "info-get guestinfo.myTest"  
bla-bla-bla  

这意味着您需要虚拟化团队的帮助才能在需要时显示该信息。

然而,此时您可能还想让他们运行一个脚本来提取该信息,而不需要他们破解所有生产服务器的配置文件(并且可能还需要重新启动所有内容)。

例如在 PowerCLI 中

Get-VM | Get-VMAdvancedConfiguration -key virtualHW.version

相关内容