Leser: 12
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
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
print "$hashRef->{Message}\n" if defined($hashRef->{Message}) and $zeit eq $aktzeit;
1
2
3
4
5
6
7
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 defined($hashRef->{Message}) and $zeit eq $aktzeit;
}# ende if