Like most enterprises, we wrap up VMware tools with our own logic and install transforms… y’know, stuff like setting the video hardware acceleration level in the VM before running the tools installer so you don’t get pop-ups, not installing the hgfs driver, etc etc.
The problem when a new version of tools comes out (ie along with an ESX patch, update or major new version) is that you need to do some kind of host level detection to ensure you don’t install a higher level tools into a VM that is running on a downlevel host, as it’s not supported. Of course, running downlevel tools on higher level hosts is supported for the most part (within the same major version at least). Often this problem exists for only a short period while your fleet is upgaded – once that is complete, you can blat out the correct tools version for your estate wholesale.
But unfortunately there is no surefire way of determining what version of ESX a guest is running on from within a guest that doesn’t have VMware tools installed. Even with tools installed, there’s no way I know of but there could be some kind of undocumented backdoor way of finding out – who knows.
So with the introduction of ESX 4, I thought the best bet would be to check whether a guest was running on Virtual Hardware 7 (HW 7) or not. Sure, it’s possible to create version 4 (HW 4) guests on ESX 4, but at least if you found HW 7 you could be absolutely certain that the ESX 4 version of tools should be installed. And besides, I will be mandating that any new machines created on vSphere will have HW 7 so the only things on HW 4 will be migrated machines.