Je veux lire le journal des événements sur un ordinateur distant pour vérifier les erreurs lors des tests. Voici un code pertinent:Lire le journal des événements à distance avec .NET
public bool CheckEventLogs(DateTime start)
{
EventLog myEventLog = new EventLog("CustomLog", "ServerName");
bool errorFound = false;
foreach (EventLogEntry entry in myEventLog.Entries)
{
if (entry.EntryType == EventLogEntryType.Error && entry.TimeGenerated >= start)
{
Console.WriteLine("Error in Event Log:\n" + entry.Message + "\n");
errorFound = true;
}
}
return errorFound;
}
Actuellement, ce code génère une exception (tentative d'effectuer une opération non autorisée). Selon MSDN, j'ai besoin d'EventLogPermission, mais j'ai eu du mal à trouver des exemples d'utilisation de cette permission. Quelqu'un at-il un exemple de comment faire cela?
Edit: Réponse aux commentaires
Merci à tous pour les commentaires - voici les informations complémentaires demandées:
L'exception est levée de la déclaration foreach
. Plus précisément, lorsque vous passez le code à l'étape suivante, in
est mis en surbrillance. Il semble que j'ai été capable de créer l'objet du journal des événements, mais je ne suis pas en mesure d'accéder aux entrées dans le journal des événements.
Mon compte n'a pas l'autorisation de lire le journal des événements sur le système cible, mais j'ai des informations d'identification pour un compte qui le fait. Lors de la connexion manuelle à travers l'observateur d'événements, il existe une option pour se connecter en tant qu'un autre utilisateur. Après l'avoir fait manuellement, mon code s'est exécuté sans problème. Cependant, je ne peux pas compter le faire manuellement chaque fois que ce programme s'exécute. Ce dont j'ai besoin, c'est d'un moyen de se connecter comme un autre utilisateur programmatique. Je pensais que le EventLogPermission
serait le moyen de le faire, mais il y a peut-être un autre moyen. Si quelqu'un sait comment se connecter à un journal distant en tant qu'utilisateur différent en C#, ce serait exactement ce que je cherchais.
Quelle ligne renvoie l'exception? L'article MSDN dit seulement que vous avez besoin de la permission d'écrire - il ne dit rien sur la lecture. – Gabe
Votre compte utilisateur est-il autorisé à lire le journal des événements sur la machine distante? Ouvrez l'Observateur d'événements et essayez de vous connecter à l'ordinateur distant à partir de votre ordinateur pour vérifier. –
Je viens d'essayer votre code et obtenir des journaux du serveur distant. Tout fonctionne bien. – Polaris