#!/usr/bin/perl -w use Win32::NetAdmin; use Win32::EventLog; use strict; use vars qw(); my $event = new Win32::EventLog("Application", ".", EVENTLOG_INFORMATION_TYPE, EVENTLOG_ERROR_TYPE, EVENTLOG_WARNING_TYPE); if(! $event) { die "Cannot open event log: $!"; } my $num; if(! $event->GetNumber($num)) { die "Cannot read events: $!"; } while ($num--) { my $flag = EVENTLOG_BACKWARDS_READ | EVENTLOG_SEQUENTIAL_READ; my $ret; my %hash; $ret = $event->Read($flag, 0, \%hash); if (! $ret) { die "Cannot read: $!"; } print localtime($hash{TimeGenerated}). ": "; if(Win32::EventLog::GetMessageText(\%hash)) { print Win32::EventLog::GetMessageText(\%hash); } else { foreach($hash{Strings}) { chop $_; print "$_\n"; } } # print $hash{Message} . "\n"; }