Ich versuche mit einem
auf ein ForwardedEvents-Ereignisprotokoll auf einem Server zuzugreifen %Vor%das funktioniert nicht.
Ich glaube, es funktioniert nicht, weil das Protokoll nicht in der Registrierung enthalten ist, in der Eventlog es erwarten würde (HKLM / System / CurrentControlSet / Services / Eventlog / ..).
Wie würde das Protokoll der Registrierung hinzugefügt werden, damit es gefunden wird, oder gibt es eine andere Methode für den Zugriff auf ein Protokoll, das an diesem Speicherort nicht angegeben ist?
Das Problem wurde behoben, indem ein neuer Registrierungseintrag für das Protokoll erstellt wurde: (HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Dienste \ Ereignisprotokoll \ LOGNAME).
Hat dies durch .. (auf Windows Server 2008 R2) ..
1) Rechtsklick auf den übergeordneten Ordner (eventlog) - & gt; Neu - & gt; Taste
2) Benennen Sie den Schlüssel wie die evtx-Datei unter (C: \ Windows \ System32 \ winevt \ Logs \ LOGNAME)
3) Im rechten Bereich des Registry Explorers, rechte Maustaste - & gt; neu - & gt; Erweiterbarer Zeichenfolgenwert
4) Benennen Sie das neu erstellte REG_EXPAND_SZ "File"
5) Rechtsklick auf den Namen "Datei"
6) Ändern
7) Fügen Sie im Feld "Wertdaten" den Pfad zur evtx-Datei wie
hinzu(% SystemRoot% \ System32 \ winevt \ Logs \ ForwardedEvents.evtx)
Wenn Sie dies weiterhin auf programmatische Weise tun möchten, anstatt das Protokoll manuell über die Registrierung zu erstellen, gibt es einen Weg. Sie müssen überprüfen und sehen, ob der EventSource
zuerst existiert, und wenn es nicht ist, müssen Sie es erstellen. Dies muss geschehen, bevor Sie versuchen, eine EventLog
-Instanz mit dieser Quelle zu erstellen. Man beachte nur die Latenz zwischen der Erstellung und der Verwendung, also vergewissere dich, dass du damit klarkommst (siehe Ссылка für weitere Informationen).
Dies ist nahe an der anderen hier angebotenen Registrierungslösung, aber so habe ich es unter Windows 7 gemacht und werde in das Anwendungsprotokoll schreiben, nicht in das Forwarded Events-Log:
Windows-Logo & gt; Geben Sie regedit
in die Suche ein und drücken Sie Geben Sie
Erweitern Sie HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog
Suchen Sie den Schlüssel Application
und erstellen Sie einen neuen Schlüssel für Ihre Anwendung: MyApp
Klicken Sie in MyApp
mit der rechten Maustaste auf das rechte Seitenfenster im leeren Bereich und wählen Sie Neu & gt; Erweiterbarer Zeichenfolgenwert Dies erstellt einen REG_EXPAND_SZ
-Eintrag. Geben Sie ihm den Namen EventMessageFile
.
Doppelklicken Sie auf den neuen Eintrag, um einen Wert festzulegen. Geben Sie für den Wert Folgendes ein: %Code% Wählen Sie OK .
Belassen Sie den C:\Windows\Microsoft.NET\Framework64\v4.0.30319\EventLogMessages.dll
-String-Wert allein mit seinem (Default)
-Wert.
Wiederholen Sie zwei weitere Male, indem Sie (value not set)
durch CurrentControlSet
und ControlSet001
ersetzen.
Und wenn Sie Ihre Anwendung dann auf einen anderen Computer verschieben müssen, können Sie mit der rechten Maustaste auf den Schlüssel klicken und ControlSet002
auswählen. Sie speichern die Datei als Export
-Datei und kopieren sie dann auf den nächsten Computer. Dort klicken Sie doppelt, um es auszuführen (während Sie als Administrator angemeldet sind). Auf diese Weise müssen Sie es nicht manuell neu erstellen, und für andere Anwendungen können Sie die .reg
-Datei im Editor bearbeiten und einfach den Namen der App ändern, speichern Sie sie (achten Sie darauf, das Format zu ändern zu "Alle Dateien", so behält es die .reg
am Ende, und speichern Sie es nicht als .reg
-Datei, und dann können Sie doppelklicken, um es auszuführen und den EventLog-Schlüssel der neuen Anwendung einzufügen.