Question

Y at-il une gamme spécifique d'ID d'événement dans Windows réservé aux développeurs d'applications?

Je travaille sur une application .Net qui va écrire des erreurs au journal des événements Windows. Cette application vise effectivement les serveurs, et sera exécuté comme une tâche planifiée par les admins sys paranoïaques qui veulent le verrouiller autant que possible (y compris en cours d'exécution avec un compte d'entretien des privilèges réduit). L'application ne sera pas officiellement installé - en fait, je ne suis pas même la construction d'un installateur pour cela; juste un fichier zip avec le .exe et app.config fichier.

Voici l'astuce: dans Windows, vous avez besoin de droits d'administrateur pour créer une source dans le journal des événements d'application. Puisque je ne peux pas compter sur ce sujet et je ne veux pas faire admins sys surchargés de travail doivent créer un, j'utilise « Erreur d'application » (utilisé par MS Office) comme solution de repli. (Choisir une meilleure fallback est sur ma liste de todo, puisque le bureau est pas aussi souvent installé sur les serveurs).

Le problème est que je veux encore mes événements de se démarquer un peu, plutôt que de simplement se faisant passer pour bureau. De cette façon, mes admins sys peut facilement filtrer jusqu'à seulement ces événements dans l'Observateur d'événements ou l'agrégateur de journal de leur choix. La meilleure solution que je suis au courant est en ce moment en utilisant l'ID d'événement, mais je suis inquiet en conflit avec des événements internes de Windows, en particulier compte tenu de mon public cible.

Je l'ai regardé, mais je ne peux trouver aucune documentation à ce sujet. Alors, est-il une gamme spécifique d'ID d'événement que je devrais utiliser, je serai bien en utilisant tout, ou devrais-je regarder une option complètement différente ici?

Était-ce utile?

La solution

Pas vraiment. Au niveau supérieur, vous avez une source de l'événement. Chaque Source de l'événement a ses propres catégories d'événements. Chaque message d'événement est « possédé » par une source de l'événement et tombe dans l'une de ses catégories d'événements. Si vous allez à vous connecter à vos événements sous quelqu'un d'autre Source de l'événement, vous enfreignez cette convention et pourrait très probablement avoir des collisions ID d'événement.

Par contre, ID d'événement sont structurellement similaires à HRESULT et il est un peu client vous pouvez définir. Il y a aussi un champ Code de l'établissement, mais Microsoft ne fournit qu'une seule installation pour les parties 3e (les autres sont réservés). Même si vous salissez avec ces bits, vous êtes toujours à la merci du propriétaire de la Source de l'événement; si Microsoft était toujours écrire quelque chose à la source de l'événement que vous utilisez et définissez le bit client ou code installation (par exemple peut-être de composants non Windows comme Office ou quelque chose), vous seriez arrière droit dans le même danger de collisions. Ou si un autre développeur décide de faire la même chose que vous faites. Vraiment le moyen le plus sûr est de définir votre propre source de l'événement.

Autres conseils

Il semble que ce soit le nœud du problème

Je suis inquiet en conflit avec des événements internes de Windows, en particulier compte tenu de mon public cible.

Je ne pense pas que vous avez à vous parce que le correspondent d'ID d'événement à un événement spécifique Source sauf si vous utilisez la source exacte même vous ne causera pas d'obtenir la colère de l'administrateur. Par exemple, MS fait parfois utilise le même ID avec différentes sources.

Si vous souhaitez obtenir des informations sur les éditeurs enregistrés et ids d'événements que vous pouvez utiliser Wevtutil Par exemple, cette liste les éditeurs.

wevtutil ep

A partir de ce que vous pouvez obtenir l'ID d'événement spécifique utilisé pour un éditeur, vous pouvez utiliser ce qui suit (Event Log a été utilisé dans cet exemple)

wevtutil gp Microsoft-Windows-EventLog /ge /gm:true

Si vous êtes bon powershell je suis sûr que vous pouvez venir avec un script pour obtenir tous les IDs d'événements qui sont INSCRITS

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top