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