Lesen Ereignisprotokoll aus der Ferne mit .NET

Will ich aber Lesen Sie das Ereignisprotokoll auf einem remote-computer überprüfen, auf Fehler während der Tests. Hier einige relevante code:

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;
}

Derzeit ist dieser code löst eine Ausnahme (Versucht, einen nicht autorisierten Vorgang auszuführen). Nach MSDN, ich brauche EventLogPermission, aber ich kämpfen, um zu finden, Beispiele dafür, wie um diese Berechtigung zu verwenden. Hat jemand ein Beispiel, wie dies zu tun?

Edit: Antwort auf Kommentare

Danke Euch allen für die Kommentare - hier ist der zusätzliche Informationen angefordert werden:

Ausnahme geworfen wird, aus der foreach - Anweisung. Speziell, wenn man durch den code geworfen, im Schritt nach, wenn in markiert ist. Es scheint, dass ich war in der Lage, erstellen Sie den Ereignis-log-Objekt, aber ich bin nicht in der Lage, den Zugriff auf die Einträge im Ereignisprotokoll.

Mein Konto nicht über die Berechtigung zum Lesen der event-log auf dem Ziel-system, aber ich habe die Anmeldeinformationen für ein Konto die nicht. Wenn Sie die Verbindung manuell über die Ereignisanzeige, dort wird die option als anderer Benutzer verbinden. Nachdem ich diese manuell, dann wird mein code lief ohne ein problem. Aber, ich kann nicht verlassen, es manuell zu tun, jedes mal, wenn dieses Programm ausgeführt wird. Was ich brauche ist ein Weg um sich als anderer Benutzer verbinden programmaticly. Ich dachte, dass die EventLogPermission wäre die Möglichkeit, das zu tun, aber vielleicht gibt es einen anderen Weg. Wenn jemand weiß, wie man eine Verbindung zu einem remote-log als ein anderer Benutzer in C#, das wäre genau das was ich suchte.

  • Welche Linie wirft die Ausnahme? Der MSDN Artikel sagt nur, dass Sie die Erlaubnis benötigen, zu schreiben-es sagt nichts darüber Lesen.
  • Hat Ihr Benutzerkonto über die Berechtigung zum Lesen der event-log auf dem remote-Rechner? Öffnen Sie die Ereignisanzeige und versuchen Sie eine Verbindung zu dem remote-computer von Ihrem Computer zu überprüfen.
  • Ich versuche nur den code und Protokolle von remote-server. Alles funktioniert einwandfrei.
  • Danke @Frank, @Stefan und @Polaris für Ihre Kommentare. Ich habe aktualisiert die Frage mit den zusätzlichen Informationen.
InformationsquelleAutor Brian | 2011-03-15
Schreibe einen Kommentar