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

  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...

  7. #7
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Salut ... en fait la première chose que tu devrai faire c'est de bien observer le fichier texte que tu dois générer pour qu' Excel lise le bonne données... et les formate comme tu le désire ..

  8. #8
    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
    je pense qu'il faut que tu lises ton fichier et que tu utilises la fonction "Asc" sur le caractere carré pour déterminer quel numéro il porte. ensuite fait un replace de ce caractère.

  9. #9
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Citation Envoyé par Flamby38 Voir le message
    je pense qu'il faut que tu lises ton fichier et que tu utilises la fonction "Asc" sur le caractere carré pour déterminer quel numéro il porte. ensuite fait un replace de ce caractère.
    10 le numéro mais c'est pas le seul problème ...


    ici , la première ligne ne sert à rien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Cesure = replace(textimp & "",chr(10)," ")
    Cesure = replace(textimp & "",chr(13)," ")

  10. #10
    Membre habitué
    Inscrit en
    Février 2010
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 12
    Par défaut
    Ben je suis complètement bloqué...j'arrive a remplacer tous les caractères sauf celui la... et cela me pose vraiment problème.... Sans ces "petits carrés", ca serait niquel, j'ai essayé...

    Pas d'autre idées?

  11. #11
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 130
    Par défaut
    Désolé, je ne propose pas une réponse.
    Mes nous un extrait de ton fichier (en pièce jointe, pas un copier/coller dans ton message) plutôt qu'une capture d'écran, car moi je ne suis pas convaincu du code ascii du caractère non imprimable qui te pose problème.
    Les retours à la ligne ne sont pas forcément égal a vbCrlf.
    Pour ton Replace, as tu essayé avec vbNewLine comme argument de recherche ?
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  12. #12
    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
    Moi je dirais que ce n'est même pas nécessairement un retour à la ligne, comme je l'ai dit plus haut un carré c'est juste un caractère non affichable, ca pourrait être n'importe quoi.
    As tu essayé la fonction Asc pour déterminer le numéro de ton caractère?

  13. #13
    Membre habitué
    Inscrit en
    Février 2010
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 12
    Par défaut
    Je vais essayer de mettre le fichier en pièce jointe

    Il faut juste remplacer l'extention par .vbs

    Merci.
    Fichiers attachés Fichiers attachés

  14. #14
    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
    Non mais quand il te disait de mettre le fichier il parlait du fichier de données, pas du script Pour pouvoir lire le numéro du caractère inconnu.

  15. #15
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 130
    Par défaut
    Citation Envoyé par Flamby38 Voir le message
    Non mais quand il te disait de mettre le fichier il parlait du fichier de données, pas du script Pour pouvoir lire le numéro du caractère inconnu.
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

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

    Désolé mais la j'arrive plus a mettre une pièce jointe, je re essaye dans la mâtiné...

  17. #17
    Membre habitué
    Inscrit en
    Février 2010
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 12
    Par défaut
    voila le fichier :
    Fichiers attachés Fichiers attachés

  18. #18
    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
    Chez moi quand je remplace le caractère 10 par un espace ca marche nickel.

  19. #19
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Comme j'ai essayé de te le faire comprendre plus haut les vbLF ne sont pas tous dans ton texte initial il sont rajouté par ta fonction cesure
    grâce l'action combiné de ton writeln suvi de :

    Citation Envoyé par bbil Voir le message
    10 le numéro mais c'est pas le seul problème ...


    ici , la première ligne ne sert à rien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Cesure = replace(textimp & "",chr(10)," ")
    Cesure = replace(textimp & "",chr(13)," ")
    ces deux replace successif se limitant à supprimer le chr(13) ...

  20. #20
    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
    je comprends bien ce que tu veux dire bbil, mais enfin monsieur xme a proposé une solution à base de replace en tout début et apparemment ca ne convenait pas non plus alors que ca aurait du, j'en avais conclu que peut etre il y avait un caractère bizarre dans le fichier. A mon avis sa solution n'a pas été testée correctement.

    bref, quoi qu'il en soit, en remplacant correctement les caractères 10 ca devrait fonctionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    montexte = replace(textimp ,chr(10)," ")
    Cesure = replace(montexte,chr(13)," ")

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