guze
Messages postés6Date d'inscriptionlundi 16 septembre 2002StatutMembreDernière intervention11 mai 2007
-
14 avril 2007 à 13:15
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 2014
-
14 avril 2007 à 17:16
Bonjour,
Je cherche à exporter les différents journaux windows (observateur d'evt) vers une base SQL, ce qui ne parait pas exceptionnel.
Je
travaille donc avec un compossant eventlog, je me "connect" bien sur
les journaux, j'arrive même à récupérer l'ensemble des infos voulus
sauf une, pourtant majeur :
l' Event ID (le numéro d'evenement de l'erreur)
j'essaye
d'utiliser instanceid mais l'information renvoyé n'est pas bonne (ex:
pour une erreur 1074 il me renvoir une info du type 237651456908 !! .) Mais peut être ne faut-il pas utiliser cette propriété ?
Je jette ci-dessous un bout de code pour faciliter la compréhenion de mon pb :
#Imports System.Diagnostics
Dim ev As New EventLog("System", System.Environment.MachineName)
Dim entry As EventLogEntry
Dim EntLog, EntCategory, EntUser, EntType, EntMessage, EntComputerName, EntDate, EntTime, EntSource, EntEvID As String
guze
Messages postés6Date d'inscriptionlundi 16 septembre 2002StatutMembreDernière intervention11 mai 2007 14 avril 2007 à 14:01
Super,
Merci Casy, super rapide en plus
Mais alors pourquoi rajouter And &H3FFFFFFF, là j'ai pas le niveau pour comprendre.
Si tu as qq explication je suis preneur.
Tout fonctionne nickel
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 14 avril 2007 à 14:15
ALors si tu as regardé dans l'aide dans la partie note, tu as pu lire que la valeur de EventID est en fait la valeur de InstanceID avec les 2 bits de poid fort masqués, c'est à dire forcé à 0.
En effet, 2 évènements similaires epuvent avoir le même EventID mais avoir tout de même un ID différent. C'est en fait les 2 bits de poid fort qui font la différence.
Même si tu pourrais utiliser la propriété EventID, celle ci est déclaré obsolete, il vaut mieux donc passer par la propriété InstanceID avec une gymnastique pour récupérer l'EventID -> masquer les 2 bits qui nous gènent.
Sachant que la valeur est un long 32 bits (Integer en .Net), la représentation en binaire sera :
InstanceID : XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EventID : 00XXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
et donc pour passer de l'instanceID au EventID il faut faire un masque (un Et logique) avec
Masque : 00111111 11111111 11111111 11111111 soit &h3F FF FF FF en hexa
---- Sevyc64 (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 14 avril 2007 à 14:17
Si tu ne comprend pas ou ne maitrise pas les histoires de bits, de masques, etc ...., je te conseille de recherche des renseignements ou des cours sur l'Algèbre de Boole, qui est la base du monde numérique et donc de l'informatique.
---- Sevyc64 (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Vous n’avez pas trouvé la réponse que vous recherchez ?
guze
Messages postés6Date d'inscriptionlundi 16 septembre 2002StatutMembreDernière intervention11 mai 2007 14 avril 2007 à 17:03
Merci pour toutes ces explications.
J'ai apparenté ça au découpage d'une adresse IP (qui est mon coeur de métier ) et un wildmask.
En tous cas merci encore.
A une prochaine.