Retrieve and Set VM Advanced Configuration (VMX) settings

Retrieve and Set VM Advanced Configuration (VMX) settings

The following vSphere SDK for Perl script allows you to retrieve all advanced configuration settings of a Virtual Machine or a specific key. The script also allows you create your own custom advanced configurations for a VM.

Here is an example of listing all advanced configuration setting for a VM:

$ ./vmAdvSettings.pl --server vcenter50-3 --username root --vmname MyVM --operation list


Key: ethernet0.filter0.param0   Value: vshield-dvfilter-module
Key: ethernet0.filter0.param1   Value: uuid=5019b662-a14c-8166-9ce3-61f362de05a3.000
Key: evcCompatibilityMode       Value: FALSE
Key: guestCPUID.0       Value: 0000000b756e65476c65746e49656e69
Key: guestCPUID.1       Value: 000106a400010800809822010febfbff
Key: guestCPUID.80000001        Value: 00000000000000000000000128100800
Key: hostCPUID.0        Value: 0000000b756e65476c65746e49656e69
Key: hostCPUID.1        Value: 000106a400010800809822210febfbff
Key: hostCPUID.80000001 Value: 00000000000000000000000128100800
Key: hpet0.present      Value: true
Key: migrate.hostLogState       Value: none
Key: migrate.migrationId        Value: 0
Key: nvram      Value: MyVM.nvram
Key: replay.supported   Value: false
Key: scsi0.pciSlotNumber        Value: 16
Key: snapshot.action    Value: keep
Key: uuid.action        Value: create
Key: virtualHW.productCompatibility     Value: hosted
Key: vmci0.pciSlotNumber        Value: 32
Key: vmotion.checkpointFBSize   Value: 4194304
Key: vmware.tools.installstate  Value: none
Key: vmware.tools.internalversion       Value: 2147483647
Key: vmware.tools.lastInstallStatus     Value: unknown
Key: vmware.tools.requiredversion       Value: 8384

Here is an example of querying for a specific advanced configuration setting for a VM:

$ ./vmAdvSettings.pl --server vcenter50-3 --username root --vmname MyVM --operation list --key ethernet0.filter0.param1

Key: ethernet0.filter0.param1   Value: uuid=5019b662-a14c-8166-9ce3-61f362de05a3.000

Here is an example of setting a custom advanced configuration for a VM:


./vmAdvSettings.pl --server vcenter50-3 --username root --vmname MyVM --operation update --key asset.tag --value ABC123

Reconfiguring "MyVM" with advanced setting: "asset.tag = ABC123" ...
Successfully updated advanced setting for "MyVM"!

You can also perform a bulk update by specifying a list of key/value pairs in a file (seperate the key and value using a comma):

Here is an example of a file:

tools.guestlib.enableHostInfo,FALSE
tools.setInfo.sizeLimit,1048576
vmci0.unrestricted,FALSE

Here is an example of setting bulk custom advanced configurations for a VM:

./vmAdvSettings.pl --server vcenter50-3 --username root --vmname MyVM --operation update --optionlist LIST-OF-KEY-VALUE

Reconfiguring MyVM1 advanced setting(s) ...
Successfully updated advanced setting for MyVM1
Attachments
Comments

I have tried to use this script and it comes back saying that the --operation is an unknown option.

I have  approx. 300 vms that I need to enable change block tracking on and it would be great if I could get this script to work

Looks like I somehow uploaded an earlier version of the script. I've updated the script, so it should contain the --operation parameter.

Version history
Revision #:
1 of 1
Last update:
‎03-06-2012 09:43 AM
Updated by: