#!"C:\Perl\bin\perl.exe"
###############
# Dienste 1.0 #
###############
use Win32::Service;
use strict;
use CGI qw(:standard);
#print header;
#print start html('Dienste');
#print "
";
#print "[General |";
#print "HTTPD/WWW |";
#print "Memory |";
#print "File System |";
#print "Users |";
#print "Processes]";
#print "";
#print end_html;
my $key;
my $value;
my %ServiceList;
my %status;
my $status;
Win32::Service::GetServices("", \%ServiceList); #Aktuelle Service in Hash Liste(%ServiceList)
# Hautprogramm aufrufen
AuswahlMenue();
exit 0;
sub AuswahlMenue()
{
my $auswahl;
print header;
print start_html('Dienste');
print "############ Auswahlmenue ############
";
print "
";
print "1. Aktive Dienste auslesen
";
print "2. Gestoppte Dienste auslesen
";
print "3. Dienst stoppen
";
print "4. Dienste starten
";
print "5. Skript beenden
";
print "
";
print "#####################################
";
print "
";
print "" #
print end_html;
$auswahl = ;
chomp($auswahl);
if($auswahl eq '1') { AktiveDiensteAuflisten(); }
if($auswahl eq '2') { GestoppteDiensteAuflisten(); }
if($auswahl eq '3') { DienstStoppen(); }
if($auswahl eq '4') { DienstStarten(); }
if($auswahl eq '5') { exit 0; }
}
sub AktiveDiensteAuflisten()
{
# Durchgehen der Hash Liste + Spalten in Variablen packen
while (($key, $value) = each %ServiceList)
{
Win32::Service::GetStatus("", $value, \%status);
if ($status{'CurrentState'} == 4)
{
print "$key | $value\n"; # Ausgabe
#print "$status{'CurrentState'} \n"; # Status wird in Zahlen angezeigt
print "\n";
}
}
}
sub GestoppteDiensteAuflisten()
{
# Durchgehen der Hash Liste + Spalten in Variablen packen
while (($key, $value) = each %ServiceList)
{
Win32::Service::GetStatus("", $value, \%status);
if ($status{'CurrentState'} == 1)
{
print "$key | $value\n"; # Ausgabe
#print "$status{'CurrentState'} \n"; # Status wird in Zahlen angezeigt
print "\n";
}
}
}
sub DienstStoppen()
{
my $returncode;
my $dienstname;
print "Name des zu stoppenden Dienstes eingeben:\n";
print "-> ";
$dienstname = ;
chomp($dienstname);
Win32::Service::StopService("", $dienstname);
}
sub DienstStarten()
{
my $returncode;
my $dienstname;
print "Name des zu startenden Dienstes eingeben:\n";
print "-> ";
$dienstname = ;
chomp($dienstname);
Win32::Service::StartService("", $dienstname);
}