#!/usr/bin/perl -w # William Lam # http://blogs.vmware.com/vsphere/automation/ use strict; use warnings; use VMware::VIRuntime; use VMware::VILib; my %opts = ( key => { type => "=s", help => "Name of advanced option to query", required => 0, }, vmname => { type => "=s", help => "Name of VM to query for advanced option", required => 1, }, ); Opts::add_options(%opts); Opts::parse(); Opts::validate(); Util::connect(); my $key = Opts::get_option('key'); my $vmname = Opts::get_option('vmname'); my $vm = Vim::find_entity_view(view_type => 'VirtualMachine', filter => {'name' => $vmname}, properties => ['name','config.extraConfig']); unless($vm) { print "Unable to locate " . $vmname . "\n"; Util::disconnect(); exit 1; } my $advOptions = $vm->{'config.extraConfig'}; foreach my $option (sort {$a->key cmp $b->key} @$advOptions) { if($key) { if($option->key eq $key) { print "Key: " . $option->{'key'} . "\tValue: " . $option->{'value'} . "\n"; } } else { print "Key: " . $option->{'key'} . "\tValue: " . $option->{'value'} . "\n"; } } Util::disconnect();