line 99: $EventLog->GetOldest(\$first) || die $!; #### sub server_events { print_header(); print"

SysAdmin Tools v0.1 (beta)

\n"; my $servername = $q->param('servername') || 'localhost'; my $eventtype = $q->param('eventtype') || 'System'; my $eventquan = $q->param('eventquan') || '10'; print qq{$servername is Server
}; print qq{$eventtype is Event Type
}; print qq{$eventquan is Event Quantity
}; my ($EventLog, $count, $first, $key); $first = $count = 0; my $event={ 'Source' => NULL, 'Computer' => NULL, 'Length' => NULL, 'Category' => NULL, 'RecordNumber' => NULL, 'TimeGenerated' => NULL, 'Timewritten' => NULL, 'EventID' => NULL, 'EventType' => NULL, 'ClosingRecordNumber' => NULL, 'Strings' => NULL, 'Data', => NULL, }; $EventLog = new Win32::EventLog( "$eventtype","$servername" ) || die $!; $EventLog->GetOldest(\$first) || die $!; $EventLog->GetNumber(\$count) || die $!; $EventLog->Read((EVENTLOG_SEEK_READ | EVENTLOG_BACKWARDS_READ),$first+$count,$event); for my $i ($first+$count-$eventquan+1..$first+$count) { $EventLog->Read((EVENTLOG_SEQUENTIAL_READ|EVENTLOG_BACKWARDS_READ),0,$event); my ($sec,$min,$hour,$mday,$mon,$year,$sday,$yday,$isdst) = localtime($event->{'TimeGenerated'}); print sprintf("%15s -> %02d\-%02d\-%02d, %02d:%02d\n",'timestamp',$year,$mon+1,$mday,$hour,$min); #to get a readable EventId $event->{'EventID'} = $event->{'EventID'} & 0xffff; foreach $key ('RecordNumber','Category','Source','EventID', 'EventType', 'Strings', 'Data') { print sprintf( "%15s -> %s\n",$key, $event->{$key} ); print "
" } print "\n
"; } }