#!/usr/bin/perl die "Usage: $0 service_name\n" unless @ARGV == 1; use strict; use warnings; use Win32::TieRegistry( Delimiter=>"/" ); my $service = $ARGV[0]; my %start = ( '0x00000002' => 'an automatic', '0x00000003' => 'a manual', '0x00000004' => 'a disabled', ); my $services = $Registry->{'HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/'}->{$service} or die "Unknown service: $service\n"; my $servstart = $services->GetValue('Start'); print "$service is $start{$servstart} service.\n"; #### C:\>servicetype.pl Alerter Alerter is an automatic service. C:\>servicetype.pl foo Unknown service: foo