Instead of
if (($hashRef->{TimeGenerated} >= $time - 86400) &&
($hashRef->{EventType} eq EVENTLOG_ERROR_TYPE || $hashRef->{EventType} eq
EVENTLOG_WARNING_TYPE))
try to use :
if (($hashRef->{TimeGenerated} >= $time - 86400) &&
($hashRef->{EventType} & EVENTLOG_ERROR_TYPE || $hashRef->{EventType} &
EVENTLOG_WARNING_TYPE))
Yves
-----Original Message-----
From: pineau [mailto:[EMAIL PROTECTED]
Sent: Thursday, September 11, 2003 9:41 AM
To: [EMAIL PROTECTED]
Subject: eventlogs
Hi again
So here is my code (I have good admin rights on the remote machines. Locally
it works perfectly but remotely, I can only have some eventlogs but not all)
:
#!c:/perl/bin/perl.exe
use Time::localtime;
use File::stat;
use Win32::EventLog;
use strict;
my $time = time;
my @hosts = ("smtp", "ged", "data1", "data0", "web3", "web2", "debussac",
"rentabiliweb");
open(FILE, ">c:/resultats_msg_err.txt");
my $date = ctime(stat("c:/resultats_msg_err.txt")->mtime);
print FILE "r�sultats du contr�le des messages d'erreur du $date\n\n\n";
foreach my $host (@hosts) {
print FILE "Message d'erreur de $host";
foreach my $eventLog ("Application", "System", "Security") {
my $handle=Win32::EventLog->new($eventLog, $host)
or die "Can't open $eventLog EventLog on $host\n";
if ($eventLog eq "Application") {
print FILE "Message d'erreur des applications:\n";
} elsif ($eventLog eq "System") {
print FILE "Message d'erreur du syst�me:\n";
} else {print FILE "Message d'erreur de s�curit�:\n";}
my $recs;my $base;my $hashRef;
$handle->GetNumber($recs)
or die "Can't get number of EventLog records on $host\n";
$handle->GetOldest($base)
or die "Can't get number of oldest EventLog record on $host\n";
my $x = 0;
my $count = 0;
print "$recs\t$base\n";
while ($x < $recs) {
$handle->Read(EVENTLOG_FORWARDS_READ|EVENTLOG_SEEK_READ,
$x + $base,
$hashRef);
or die "Can't read EventLog entry #$x\n";
if (($hashRef->{TimeGenerated} >= $time - 86400) &&
($hashRef->{EventType} eq EVENTLOG_ERROR_TYPE || $hashRef->{EventType} eq
EVENTLOG_WARNING_TYPE)) {
Win32::EventLog::GetMessageText($hashRef);
print FILE "Entry $x: $hashRef->{Message}\n";
$count++;
}
$x++;
}
$handle->Close;
if ($count == 0) {
print FILE "il n'y a eu aucun message d'erreur.\n";
}
print FILE "\n\n\n";
}
}
close FILE;
_______________________________________________
Perl-Win32-Admin mailing list
[EMAIL PROTECTED]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs