http://qs1969.pair.com?node_id=20483

This is a simple test to see the status of WIN32 services. On Windows NT4. I have to give barndoor credit for the WIN32::Service reference because today is the first time I saw it. After playing with it, I figured I would try to get all services and their status. One problem: Some services don't seem to return a CurrentState value. I decided to ignore these and only stick with the set that barndoor has provided.
use Win32::Service; #set up a hash of known service states my %statcodeHash = ( '1' => 'stopped.', '2' => 'start pending.', '3' => 'stop pending.', '4' => 'running.', '5' => 'continue pending.', '6' => 'pause pending.', '7' => 'paused.' ); my %serviceHash; #go get 'em... Win32::Service::GetServices("", \%serviceHash); foreach $key(keys %serviceHash){ my %statusHash; Win32::Service::GetStatus("", "$key", \%statusHash); if ($statusHash{"CurrentState"} =~ /[1-7]/){ print $serviceHash{"$key"} . " is currently " . $statcodeHas +h{$statusHash{"CurrentState"}} . "\n"; } }