|
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;
|
- eventlogs pineau
- RE: eventlogs Messenger, Mark
- RE: eventlogs pineau
- RE: eventlogs Dutrieux Yves
