Dernière mise à jour : 26/05/2016
Écrivez un script qui va déterminer quand une machine machine est allumée et éteinte. Pour ce faire, allez lire dans l'observateur d’événements quand le "EventLog" démarre et s’arrête.
#!/usr/bin/perl # (c) Sébastien Adam 2013 # Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage # dans les Mêmes Conditions 2.0 Belgique. use Win32::EventLog; $appli_log = Win32::EventLog->new("System"); $appli_log->GetNumber($recs) or die "$0: Can't get number of EventLog records\n"; $appli_log->GetOldest($base) or die "$0: Can't get number of oldest EventLog record\n"; print "+------------+-----------+-----------+\n"; print "| Date | Démarrage | Arrêt |\n"; print "+============+===========+===========+\n"; $x = 0; while ($x < $recs) { $appli_log->Read(EVENTLOG_FORWARDS_READ|EVENTLOG_SEEK_READ,$base+$x,$hashRef) or die "Can't read EventLog entry #$x\n"; if ($hashRef->{Source} eq "EventLog") { Win32::EventLog::GetMessageText($hashRef); if( (index($hashRef->{Message},"The Event log service was stopped") >= 0) || (index($hashRef->{Message},"Le service d’Enregistrement d’événement a été arrêté") >= 0) ) { ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime($hashRef->{TimeGenerated}); $date = sprintf("%02d/%02d/%4d",$mday,$mon+1,$year+1900); $time = sprintf("%02d:%02d:%02d",$hour,$min,$sec); print "| $date | | $time |\n"; print "+------------+-----------+-----------+\n"; } elsif( (index($hashRef->{Message},"The Event log service was started") >= 0) || (index($hashRef->{Message},"Le service d’Enregistrement d’événement a démarré") >= 0) ) { if($start ne "") { print OUTPUT "$date;$start;$stop\n"; } ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime($hashRef->{TimeGenerated}); $date = sprintf("%02d/%02d/%4d",$mday,$mon+1,$year+1900); $time = sprintf("%02d:%02d:%02d",$hour,$min,$sec); print "| $date | $time | |\n"; print "+------------+-----------+-----------+\n"; } } $x++; } $appli_log->Close;
© Sébastien Adam 1996 ~ 2024 - https://www.sebastienadam.be/ - .