use Win32::EventLog; open (EL,">eventlog.txt"); $handle=Win32::EventLog->new("System", $ENV{ComputerName}) or die "Can't open Application EventLog\n"; print "$ENV{ComputerName}\n"; $handle->GetNumber($recs) or die "Can't get number of EventLog records\n"; $handle->GetOldest($base) or die "Can't get number of oldest EventLog record\n"; $x = 0; $aktzeit = &zeit(time,'jmt'); print "Aktuelle Zeit ist: $aktzeit\n"; while ($x < $recs) { $handle->Read(EVENTLOG_FORWARDS_READ|EVENTLOG_SEEK_READ, $base+$x, $hashRef) or die "Can't read EventLog entry #$x\n"; if ($hashRef->{EventType} eq '1' or $hashRef->{EventType} eq '2'){ #print "$hashRef->{EventType}"; $zeit = &zeit($hashRef->{TimeGenerated},'jmt'); #print "$zeit\n"; Win32::EventLog::GetMessageText($hashRef); print "$hashRef->{Message}\n" if $zeit eq $aktzeit; } $x++; } close (EL); sub zeit { my $sek = shift; # Übergebene Sekunden lesen my $par = shift; # Parameter lesen my $zeit; # Parameter Zeit initialisieren my ($sekunden,$minuten,$stunden,$monatstag,$monat,$jahr,$wochentag,$jahrestag,$sommerzeit) = localtime($sek); # Liste mit Datumswerten erstellen $monat++; $jahrestag++; $jahr+=1900; $sekunden = &format($sekunden,2); $minuten = &format($minuten,2); $stunden = &format($stunden,2); $monatstag = &format($monatstag,2); $monat = &format($monat,2); $jahr = &format($jahr,4); $jahrestag = &format($jahrestag,3); if ($par eq 'jmt') { # Zeit mit jahr monat tag aufbereiten $zeit = $jahr . $monat . $monatstag; } if ($par eq 'jm') { # Zeit mit jahr monat aufbereiten $zeit = $jahr . $monat; } return ($zeit); } sub format { my $wert = shift; my $parameter = shift; $wert = sprintf("%0${parameter}d",$wert); return($wert); }# ende format