Hi,
this post describes on how to to pass data, for example a variable, from vCenter into a virtual machine.
If VMware tools are installed you can read all “guestinfo.*” variables within the virtual machine.
Get with Powercli all guestInfo variables set at the virtual machine:
PS D:\> get-vm MyVM | Get-AdvancedSetting guestinfo.* | ft -AutoSize Name Value ---- ----- guestInfo.detailed.data architecture='X86' bitness='64' buildNumber='22631' distroName='Windows' d guestinfo.Cb.InstallStatus 3013 guestinfo.Cb.LauncherVersion 1.3.1 guestinfo.driver.vmci.version 9.8.18.0 guestinfo.driver.vsock.version 9.8.22.0 guestinfo.driver.wddm.version 9.17.08.0009 guestinfo.vmtools.buildNumber 24276846 guestinfo.vmtools.description VMware Tools 12.5.0 build 24276846 guestinfo.vmtools.versionNumber 12448 guestinfo.vmtools.versionString 12.5.0 guestinfo.vmware.components.available salt_minion guestinfo.appInfo {...
Then logon to your VMware and try to read those variables. You can use vmtoolsd.exe or rpctool.exe
D:\> "C:\Program Files\VMware\VMware Tools\vmtoolsd.exe" config --cmd "info-get guestinfo.appinfo" D:\> "C:\Program Files\VMware\VMware Tools\rpctool.exe" "info-get guestinfo.appinfo" { "version":"1", "updateCounter":"21", "publishTime":"2024-12-10T13:35:26.661Z", "applications":[ {"a":"[System Process]","v":""}, {"a":"MsMpEng.exe","v":"4.18.24090.11"}, {"a":"MsSense.exe","v":"10.8775.27682.1012"}, {"a
But how to set your own variable?
PS D:\> get-vm myVM | New-AdvancedSetting -Name guestinfo.myvariable -Value "TEST" -confirm:$false
Or change an existing variable
PS D:\>get-vm myVM | Get-AdvancedSetting -Name guestinfo.myvariable | Set-AdvancedSetting -Value "TEST" -confirm:$false
And in the VM it looks like
D:\> "C:\Program Files\VMware\VMware Tools\rpctool.exe" "info-get guestinfo.myvariable" TEST1
Michael