IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Surveillance Event Viewer


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Février 2010
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 12
    Par défaut Surveillance Event Viewer
    Bonjour tout le monde...

    Bon j'ai un petit soucis, je vais essayer d'être le plus clair possible, n'hésitez pas a me reprendre si j'ai pas été clair...

    Alors :
    Je souhaite surveiller L'EventViewer de serveurs, donc j'ai fais un petit script qui importe dans un .txt tous ce qui est en erreur... ca tout va bien... Je veux ensuite importer ce résultat dans un fichier Excel afin de l'exploiter avec une macro...
    Et le soucis c'est que les retours chariot sont traduit par des petits carrés que j'aimerai faire disparaitre (excel ne les aime pas..., moi non plus lol). J'aimerai les faire disparaitre dans mon .txt
    Voici mon script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    'Selection sur LogFile="Application" ou "System", Type="erreur" et TimeGenerated <= à 15h
    '
    On Error Resume Next
    'Création fichier resultat
    Dim resultat : resultat = "C:\TEMP\support\resultatSurvW" & Replace(Date, "/","-") & ".txt"
     
    Dim Fso : Set Fso = CreateObject("Scripting.fileSystemObject")
    Dim Rapport : Set Rapport = Fso.openTextFile(resultat, 2, True)
     
    Dim strComputer, objWMIServices, objWMIObjectSet, objWMIObject
    strComputer = "."
    Set objWMIServices = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set objWMIObjectSet = objWMIServices.ExecQuery _
    ("Select * from Win32_NTLogEvent Where (LogFile='Application' Or LogFile='system' Or LogFile='Infomil') And Type='Error'")
    For Each objWMIObject In objWMIObjectSet
    Dim MyComputer : MyComputer = objWMIObject.ComputerName
    decritEvenement = objWMIObject.Message
    Dim messEv
    If DateDiff("d", clair(objWMIObject.TimeGenerated), Now) <= 30 Then
    messEv = objWMIObject.ComputerName & ";" & objWMIObject.LogFile & ";" & UCase(Left(objWMIObject.Type,1)) & mid(objWMIObject.Type,2) & ";" & clair(objWMIObject.TimeGenerated) & ";" & objWMIObject.SourceName & ";" & Cesure(objWMIObject.Message, 56)
     
    Rapport.writeLine "" & messEv
     
     
    End If
    Next
    Rapport.Close
    Set Rapport = Nothing
    Set fso = Nothing : Set Rapport = Nothing
    Set objWMIObjectSet = Nothing : Set objWMIServices = Nothing
     
    Dim WshShell : Set WshShell = CreateObject("WScript.Shell")
    WshShell.Run resultat
    Set WshShell = Nothing
     
    WScript.Quit
     
    Function clair(temps)
    'tranformation de la date "aaaammjjhhmnss" en jj/mm/aaaa hh:mn
    Dim debut, an, mois, jour, hhmn
    debut = left(temps,8)
    an = left(debut,4)
    mois = mid(debut,5,2)
    jour = right(debut,2)
    hhmn = ";" & Mid(temps,9,2) & ":" & Mid(temps,11,2)
    clair = CStr(jour) & "/" & CStr(mois) & "/" & CStr(an) & CStr(hhmn)
    'MsgBox temps &vbCrLf& clair
    End function
     
    Function Cesure(texte,taillecesure)
    'Cette function Cesure est à améliorer
    Dim posespace
    Dim textimp
     
    While (Len(texte) > taillecesure)
    'Vérifier si la césure ne se fait pas juste avant l'espace (apres un mot entier) :
    If Mid(texte, taillecesure + 1, 1) = "" Then
    'si c'est le cas , ne pas chercher d'espace
    posespace = taillecesure
    Else
    'sinon, chercher un espace avant le mot en cours
    posespace = InStrRev(Left(texte, taillecesure), "") - 1
    End If
    'ajouter le texte tronqué à la sortie de la fonction
    textimp = textimp & Left(texte, posespace) & vbCrLf
    'tronquer le texte et recommencer la boucle
    texte = Mid(Trim(texte), posespace + 2)
     
    Wend
    'ajouter le restant du texte
    textimp = textimp & texte
    'retourner le resultat de la fonction
    Cesure = replace(textimp & "",chr(10)," ")
    Cesure = replace(textimp & "",chr(13)," ")
     
    End Function
    Merci d'avance !

  2. #2
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 93
    Par défaut
    Bonjour
    Je ne suis pas sur d'avoir tout compris
    Le code que tu présente, c'est du code qui agit sur le .txt et non pas qui se charge de l'importe dans l'excel non?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Cesure = replace(textimp & "",chr(10)," ")
    Cesure = replace(textimp & "",chr(13)," ")
    Je ne comprends pas l'utilité des & ""

    tu devrais peut être essayer de faire le plus tôt possible les replace

    genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Function Cesure(texte,taillecesure)
    'Cette function Cesure est à améliorer
    texte = replace(texte,chr(10)," ")
    texte = replace(texte,chr(13)," ")
    texte = replace(texte,chr(12)," ") 'pour les saut de page
    texte = replace(texte,chr(9)," ") 'pour les tabulation horizontale.
    texte = replace(texte,chr(11)," ") 'pour les tabulation verticale.

  3. #3
    Membre habitué
    Inscrit en
    Février 2010
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 12
    Par défaut
    Salut,

    Tout d'abord merci pour avoir pris le temps de me répondre.
    pour répondre a ta question je parle bien du code qui agit sur le .txt...

    en fait le gros probleme c'est que dans le .txt cela m'importe sous cette forme :

    AGRIA-N301;Application;Error;01/03/2010;05:29;F-Secure Anti-Virus;12 2010-03-01 05:29:59+02:00 agria-n301 SYSTEM F-S
    cure Anti-Virus
    Scanning of \Device\HarddiskVolume1\S
    v_030_(Import_Export)\Panarea-n301\Journee\Panarea-n301
    04_100228.rar\panarea-n301_04_100228.rar was aborted du
    to exceeded scanning time limit. The file may be in us
    or reading it was too slow (e.g. network connection was
    under stress).

    Donc pour "12 2010-03-01 05:29:59+02:00 agria-n301 SYSTEM F-S
    cure Anti-Virus
    Scanning of \Device\HarddiskVolume1\S
    v_030_(Import_Export)\Panarea-n301\Journee\Panarea-n301
    04_100228.rar\panarea-n301_04_100228.rar was aborted du
    to exceeded scanning time limit. The file may be in us
    or reading it was too slow (e.g. network connection was
    under stress).
    " a chaque retour a la ligne le bloc note le traduit par un petit carré... Quand j'aimporte tout ca dans excel, chaque cellule prends bien ce qui lui apartient sauf pour la description... qui prend une cellule par retour a la ligne...ce qui rends inexploitable...

    Excel :



    Et je voudrai que cela tienne que sur une cellule et cela passe forcement par ces petits carré dans le .txt... car si je les supprime manuellement c'est ok...

    J'espère avoir été clair si c'est pas le cas n'hésitez pas a me reprendre

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    948
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 948
    Par défaut
    Comme le dit xme il faut utiliser la fonction replace, après si les lignes de codes qu'il a données ne suffisent pas, il faut que tu identifies le numéro de ton caractère pour le remplacer (un petit carré signifie caractère non affichable, mais ca ne dit pas de quel caractere il s'agit).

    Donc, as tu essayé les propositions de xme?

  5. #5
    Membre habitué
    Inscrit en
    Février 2010
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 12
    Par défaut
    yop!

    J'ai essayé et cela ne marche mieux.... merci quand même

    Donc voila ces fameux petit carré qui représente les retours a la ligne :




  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    948
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 948
    Par défaut
    toi tu travailles chez infomil non?
    je compatis...

Discussions similaires

  1. Event viewer error onStart
    Par topolino dans le forum Windows Forms
    Réponses: 0
    Dernier message: 28/01/2010, 13h44
  2. IIS monitoring ? event viewer ?
    Par Nycos62 dans le forum Services Web
    Réponses: 3
    Dernier message: 08/01/2010, 10h32
  3. [Event Viewer] Suivi des connexions
    Par LeoAnderson dans le forum Windows
    Réponses: 6
    Dernier message: 30/03/2009, 13h20
  4. Comment résoudre les erreurs "Event viewer"
    Par flo456 dans le forum Windows Serveur
    Réponses: 12
    Dernier message: 18/04/2007, 10h25
  5. delphi et event viewer
    Par Irene dans le forum Delphi
    Réponses: 1
    Dernier message: 18/07/2006, 11h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo