markvr80
Enthusiast
Enthusiast

I've finally got a script together that does most of what I want, for anybody else out there this may help :smileycool:

#!/usr/bin/perl -w
use strict;
use warnings;
use VMware::VIRuntime;

Opts::parse();
Opts::validate();

Util::connect();

my ($mo,$vm_view,$folder);


my $folder_views = Vim::find_entity_views(view_type => 'Folder',
                  				         filter => { 'name' => qr/Desktops - Test/ });

#Dirty bodge but I don't know how to do it better... 
foreach (@$folder_views) {      
   $folder = $_;
}


foreach $mo ( @{$folder->childEntity} ) {
	my $vm_view = Vim::get_view(mo_ref => $mo);

	print "Virtual Machine: " . $vm_view->name . " - " . $vm_view->runtime->powerState->val . "\n" ;

	if($vm_view->runtime->powerState->val eq 'suspended'){
		print "Powering on...\n";
		$vm_view -> PowerOnVM();
     }
}

Util::disconnect();
 

Reply
0 Kudos