in reply to Re^7: how to print out windows service status
in thread how to print out windows service status

Hi poj, I had consideration of that, but I do not think that is the issue. As I am able to use your script to get some of services status, I put the services name into my $inputfile, the service status I got is still like '' if I leave the first element of array as '', otherwise it would be the first element of this array @state_name. btw, I also tried somewhere I have full control, I had the same result.
  • Comment on Re^8: how to print out windows service status

Replies are listed 'Best First'.
Re^9: how to print out windows service status
by poj (Abbot) on Jul 31, 2017 at 19:20 UTC

    Post the content of XiServiceList.txt

      this file is just a list of services name with first entry hostname.
      localhost AMD External Events Utility aspnet_state SensrSvc CryptSvc

        Maybe it's whitespace in the file, try this

        #!perl use strict; use autodie; use Win32::Service qw'GetServices GetStatus'; my @state_name = qw( UNKNOWN Stopped START_PENDING STOP_PENDING Started CONTINUE_PENDING PAUSE_PENDING PAUSED ERROR ); my $filename = '/Perl/XiServiceList.txt'; open FILE, '<', $filename;# autodie my $hostname = <FILE>; chomp $hostname; print "Checking Services available for '$hostname'\n"; my %available=(); GetServices($hostname,\%available) or die "$!"; # add short names $available{$_} = $_ for values %available; print "Checking services in list\n"; while (<FILE>){ # trim leading and trailing whitespace s/^\s+|\s+$//g; if (exists $available{$_}){ my $shortname = $available{$_}; my %status; GetStatus($hostname, $shortname, \%status); my $state_no = $status{'CurrentState'}; printf " ServiceStatus: %s %s %s \n", $hostname, $shortname, $state_name[$state_no]; } else { print "-- ERROR -- '$_' status not avaiable\n"; } } close FILE;
        poj