Hello,
I cannot check the power state of a VM when no VMware tools are installed. The VM is running, but I get a 'powered off' state.
#!/usr/bin/perl -w
use strict;
use warnings;
use VMware::VIRuntime;
use VMware::VILib;
Opts::parse();
Opts::validate();
Util::connect();
my $vm_views = Vim::find_entity_views(
view_type => 'VirtualMachine');
foreach my $vm_view (@$vm_views) {
my $vm_name = $vm_view->name;
my $isTemplate = $vm_view->config->template;
my $toolsStatus = $vm_view->guest->toolsStatus->val;
my $powerStatus = $vm_view->guest->guestState;
if ( ! $isTemplate )
{
if ( $powerStatus !~ /notRunning/ ) {
if ( $toolsStatus =~ /toolsOk/ ) {
print "OK: ".$vm_name.": VMware Tools ok\n";
}
elsif ( $toolsStatus =~ /toolsOld/ ) {
print "WARNING: ".$vm_name.": VMware Tools needs updating\n";
}
elsif ( $toolsStatus =~ /toolsNotInstalled/ ) {
print "CRITICAL: ".$vm_name.": VMware Tools not installed\n";
}
}
else {
print "VM not running: ".$vm_name."\n";
}
}
}
Util::disconnect();
Hi
You need to use
my $powerStatus = $vm_view->runtime->powerState->val;
This will return poweredOn or poweredOff
Thank you!