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;

 

Reply via email to