Greetings,

The following script queiries the status of NT services.  My question is
there a way to directly query the @servicenames{name} and get the value of a
sub key in that hash?  Now I search all {name} keys and continue from there.

Also, how can I get rid of blank line feeds in the input file?  The format
is:

Server:Service

If I have more than one \n after the last entry, it tries to test for them!

Thanks,

Bradley
--------------------------------------------
use strict;
use diagnostics;
use Win32::Lanman;
use vars qw(@status %status @servicenames $server $myservice $service);

#Translate error codes to text.
push ( @status, qw(7 Paused 4 Started 3 Stopping 2 Starting 1 Stopped) );
%status = @status;

#Load server/services to be queried.
open( LIST, "c:\\test\\SerSvs.txt" );

while (<LIST>) {
    chomp;
    ( $server, $myservice ) = split (/:/);
    if
      ( !Win32::Lanman::EnumServicesStatus( "\\\\$server", "",
&SERVICE_WIN32,
      &SERVICE_STATE_ALL, \@servicenames ) )
    {
        print "Sorry, something went wrong connecting to $server; error: ";

        # get the error code
        print Win32::Lanman::GetLastError () . "\n";
    }
    for $service(@servicenames) {
        if ( ${$service}{name} eq "$myservice" ) {
            print "$server ${$service}{name}\n";
            print "Status $status{${$service}{state}}\n";

        }
    }
}
close LIST

Reply via email to