VMware Cloud Community
olafz
Enthusiast
Enthusiast

cannot check VM power state without VMware tools

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();

0 Kudos
2 Replies
nirvy
Commander
Commander

Hi

You need to use

my $powerStatus = $vm_view->runtime->powerState->val;

This will return poweredOn or poweredOff

olafz
Enthusiast
Enthusiast

Thank you! Smiley Happy

0 Kudos