Good day -
I am having issues with the GetMessageText command. I
am running a script that goes through a list of
servers and goes to each of their eventlogs and prints
out the errors that occur. I have set it up to print
out the Event ID and the description. However, it
seems that the description only appears part of the
time. The line that I used to get the Message was
straight out of the ActiveState documentation:
Win32::EventLog::GetMessageText($hashRef);
print "Entry $x: $hashRef->{Message}\n";
It just seems intermittant - if I only run it for one
server - local or remote - it seems to work pretty
well, but when it references a list of servers it only
returns a blank value. Here is the script:
use Win32::EventLog;
open(TXTFILE,
"\\\\ebenezer\\d\$\\perlscr\\servers.txt");
while (<TXTFILE>){
$homesrv=$_; #opens file of
chomp($homesrv); #servers to search through
my $hashref;
my %handle=(
'Length',NULL,
'RecordNumber',NULL,
'TimeGenerated',NULL,
'TimeWritten',NULL,
'EventID',NULL,
'EventType',NULL,
'Category',NULL,
'ClosingRecordNumber',NULL,
'Source',NULL,
'Computer',NULL,
'Strings',NULL,
'Data',NULL,
);
$handle=Win32::EventLog->new("System", "$homesrv")
or die "Can't open Application EventLog\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";
while ($base <= $recs) {
$handle->Read(EVENTLOG_FORWARDS_READ|EVENTLOG_SEEK_READ,
$base,
$hashRef)
or die "Can't read EventLog entry
#$base\n";
if ($hashRef->{EventType} == 1) {
Win32::EventLog::GetMessageText($hashRef);
print "\n$homesrv:\n";
print "Entry $base:$hashRef->{Message}\n";
}
$base++;
}
}
Thanks in advance.
Paul Weintrau
__________________________________________________
Do You Yahoo!?
Get email at your own domain with Yahoo! Mail.
http://personal.mail.yahoo.com/
_______________________________________________
Perl-Win32-Admin mailing list
[EMAIL PROTECTED]
http://listserv.ActiveState.com/mailman/listinfo/perl-win32-admin