Jump to content
Sign in to follow this  

Problem with the function Eventlog_read "text is cut"

Recommended Posts


hi all,

I need to get on some computer and servers all error and warning logs.

But I have a problem with the function Eventlog_read on the text return on the  fields "description" .

see the example bellow :

When i watch logs with eventvwr.msc "event viewer on Windows" in the field description on one error log ,I have the text:

"L'imprimante Print01 sur srv01 (à partir de PC201) dans la session 1 a été supprimée.

Pour plus d’informations, consultez le centre Aide et support à l’adresse http://go.microsoft.com/fwlink/events.asp."

but when i use the function "eventlog_read" the return text on the field description is not whole: it's only the text

"Print01 sur srv01 (à partir de pc201) dans la session 1"

It's strange because on some other error log the message is not cut.

see the code bellow:

thanks in advance

#Include <EventLog.au3>
#Include <EventLog.au3>
#Include <Array.au3>

$hEventLog = _EventLog__Open("", "system")
$eventArray1 = _EventLog__Read($hEventLog, True, False)
_ArrayDisplay ($eventArray1) ; the highest number
$hEventLog = _EventLog__Close($hEventLog)
$hEventLog = _EventLog__Open("", "system")
$eventArray2 = _EventLog__Read($hEventLog, True, True)
_ArrayDisplay ($eventArray2) ; the lowest number
$hEventLog = _EventLog__Close($hEventLog)
$hEventLog = _EventLog__Open("", "system")
Dim $arraymemo[1]
Dim $arrayfinal[$eventArray1[1]][7]
$arrayfinal[0][3]="Source Prob"
$arrayfinal[0][4]="Nom Pc"
$arrayfinal[0][6]="Nb x Erreur"

$cptTot = $eventArray1[1]
$cptDeb = $eventArray2[1]
$datejour=@MON&"/"&@MDAY&"/"&@YEAR;date of day
    $loopArray = _EventLog__Read($hEventLog, False, False, $i)
    If $loopArray[2]=$datejour And $loopArray[8]="error" Or $loopArray[8]="warning"  Then
        $messlog=_ArraySearch($arraymemo,$loopArray[13],0, 0, 0, 1) ; search on array memo if log message exist
        If $messlog = -1 Then ;if log not exist
            _ArrayAdd($arraymemo,$loopArray[13]); add log message on array memo
            $arrayfinal[$cpt][0]=$loopArray[2]; Date of log
            $arrayfinal[$cpt][1]=$loopArray[3] ; Ti me of log
            $arrayfinal[$cpt][2]=$loopArray[8] ; type of log
            $arrayfinal[$cpt][3]=$loopArray[10] ; source
            $arrayfinal[$cpt][4]=$loopArray[11] ; Computer
            $arrayfinal[$cpt][5]=$loopArray[13] ; Description
            If Not @error Then $arrayfinal[$messlog][6]=$arrayfinal[$messlog][6]+1

Until $loopArray[2]=$datejourprec Or $i=$cptDeb ; quit the loop when the date is yesterday or on the end of log

$hEventLog = _EventLog__Close($hEventLog)
_ArrayDisplay ($arrayfinal)

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this