Remove-EventLog
Löscht ein Ereignisprotokoll oder hebt die Registrierung einer Ereignisquelle auf.
Syntax
Remove-EventLog
[[-ComputerName] <String[]>]
[-LogName] <String[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-EventLog
[[-ComputerName] <String[]>]
[-Source <String[]>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Beschreibung
Das Cmdlet Remove-EventLog
löscht eine Ereignisprotokolldatei von einem lokalen oder Remotecomputer und hebt die Registrierung aller Ereignisquellen für das Protokoll auf. Sie können dieses Cmdlet auch verwenden, um die Registrierung von Ereignisquellen aufzuheben, ohne Ereignisprotokolle zu löschen.
Die Cmdlets, die das EventLog Substantiv enthalten, das EventLog-cmdlets, funktionieren nur in klassischen Ereignisprotokollen. Um Ereignisse aus Protokollen abzurufen, die die Windows-Ereignisprotokolltechnologie in Windows Vista und höheren Versionen des Windows-Betriebssystems verwenden, verwenden Sie Get-WinEvent.
Warnung
Dieses Cmdlet kann Ereignisprotokolle des Betriebssystems löschen, was zu Anwendungsfehlern und unerwartetem Systemverhalten führen kann.
Beispiele
Beispiel 1: Entfernen eines Ereignisprotokolls vom lokalen Computer
Remove-EventLog -LogName "MyLog"
Mit diesem Befehl wird das Ereignisprotokoll "MyLog" vom lokalen Computer gelöscht und die Registrierung der Ereignisquellen aufgehoben.
Beispiel 2: Entfernen eines Ereignisprotokolls von mehreren Computern
Remove-EventLog -LogName "MyLog", "TestLog" -ComputerName "Server01", "Server02", "localhost"
Mit diesem Befehl werden die Ereignisprotokolle "MyLog" und "TestLog" vom lokalen Computer und den Remotecomputern Server01 und Server02 gelöscht. Der Befehl hebt auch die Registrierung der Ereignisquellen für diese Protokolle auf.
Beispiel 3: Löschen einer Ereignisquelle
Remove-EventLog -Source "MyApp"
Mit diesem Befehl wird die Ereignisquelle "MyApp" aus den Protokollen auf dem lokalen Computer gelöscht. Wenn der Befehl abgeschlossen ist, kann das MyApp-Programm keine Ereignisprotokolle schreiben.
Beispiel 4: Entfernen eines Ereignisprotokolls und Bestätigen der Aktion
Diese Befehle zeigen, wie sie die Ereignisprotokolle auf einem Computer auflisten und überprüfen, ob ein Remove-EventLog
Befehl erfolgreich war.
Get-EventLog -List
Max(K) Retain OverflowAction Entries Log
------ ------ -------------- ------- ---
15,168 0 OverwriteAsNeeded 22,923 Application
15,168 0 OverwriteAsNeeded 53 DFS Replication
15,168 7 OverwriteOlder 0 Hardware Events
512 7 OverwriteOlder 0 Internet Explorer
20,480 0 OverwriteAsNeeded 0 Key Management Service
30,016 0 OverwriteAsNeeded 50,060 Security
15,168 0 OverwriteAsNeeded 27,592 System
15,360 0 OverwriteAsNeeded 18,355 Windows PowerShell
15,168 7 OverwriteAsNeeded 12 ZapLog
Remove-EventLog -LogName "ZapLog"
Get-EventLog -List
Max(K) Retain OverflowAction Entries Log
------ ------ -------------- ------- ---
15,168 0 OverwriteAsNeeded 22,923 Application
15,168 0 OverwriteAsNeeded 53 DFS Replication
15,168 7 OverwriteOlder 0 Hardware Events
512 7 OverwriteOlder 0 Internet Explorer
20,480 0 OverwriteAsNeeded 0 Key Management Service
30,016 0 OverwriteAsNeeded 50,060 Security
15,168 0 OverwriteAsNeeded 27,592 System
15,360 0 OverwriteAsNeeded 18,355 Windows PowerShell
Der erste Befehl listet die Ereignisprotokolle auf dem lokalen Computer auf.
Der zweite Befehl löscht das ZapLog-Ereignisprotokoll.
Der dritte Befehl listet die Ereignisprotokolle erneut auf. Das ZapLog-Ereignisprotokoll wird nicht mehr in der Liste angezeigt.
Beispiel 5: Entfernen einer Ereignisquelle und Bestätigen der Aktion
Get-WmiObject Win32_NTEventlogFile -Filter "logfilename='TestLog'" | foreach {$_.Sources}
MyApp
TestApp
Remove-Eventlog -Source "MyApp"
Get-WmiObject Win32_NTEventlogFile -Filter "logfilename='TestLog'"} | foreach {$_.Sources}
TestApp
Diese Befehle verwenden das Cmdlet Get-WmiObject
, um die Ereignisquellen auf dem lokalen Computer aufzulisten. Sie können diese Befehle verwenden, um den Erfolg eines Befehls zu überprüfen oder eine Ereignisquelle zu löschen.
Der erste Befehl ruft die Ereignisquellen des TestLog-Ereignisprotokolls auf dem lokalen Computer ab. MyApp ist eine der Quellen.
Der zweite Befehl verwendet den parameter Source von Remove-EventLog
, um die Ereignisquelle "MyApp" zu löschen.
Der dritte Befehl ist identisch mit dem ersten Befehl. Es zeigt, dass die Quelle des MyApp-Ereignisses gelöscht wurde.
Parameter
-ComputerName
Gibt einen Remotecomputer an. Der Standardwert ist der lokale Computer.
Geben Sie den NetBIOS-Namen, eine IP-Adresse oder einen vollqualifizierten Domänennamen eines Remotecomputers ein. Um den lokalen Computer anzugeben, geben Sie den Computernamen, einen Punkt (.) oder localhost ein.
Dieser Parameter basiert nicht auf Windows PowerShell-Remoting. Sie können den ComputerName Parameter von Remove-EventLog
verwenden, auch wenn Ihr Computer nicht für die Ausführung von Remotebefehlen konfiguriert ist.
Typ: | String[] |
Aliase: | CN |
Position: | 1 |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Confirm
Fordert Sie vor dem Ausführen des Cmdlets zur Bestätigung auf.
Typ: | SwitchParameter |
Aliase: | cf |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-LogName
Gibt die Ereignisprotokolle an. Geben Sie den Protokollnamen eines oder mehrerer Ereignisprotokolle ein, getrennt durch Kommas. Der Protokollname ist der Wert der eigenschaft Log, nicht der LogDisplayName, Wildcardzeichen sind nicht zulässig. Dieser Parameter ist erforderlich.
Typ: | String[] |
Aliase: | LN |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Source
Gibt die Ereignisquellen an, die durch dieses Cmdlet die Registrierung aufgehoben werden. Geben Sie die Quellnamen und nicht den ausführbaren Namen ein, getrennt durch Kommas.
Typ: | String[] |
Aliase: | SRC |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-WhatIf
Zeigt, was passiert, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.
Typ: | SwitchParameter |
Aliase: | wi |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
Eingaben
None
Sie können keine Eingabe an dieses Cmdlet weiterleiten.
Ausgaben
None
Dieses Cmdlet gibt keine Ausgabe zurück.
Hinweise
Um
Remove-EventLog
unter Windows Vista und höheren Versionen des Windows-Betriebssystems zu verwenden, starten Sie Windows PowerShell mithilfe der Option "Als Administrator ausführen".Wenn Sie ein Ereignisprotokoll entfernen und dann das Protokoll erneut erstellen, können Sie die gleichen Ereignisquellen nicht registrieren. Anwendungen, die die Ereignisquellen zum Schreiben von Einträgen in das ursprüngliche Protokoll verwendet haben, können nicht in das neue Protokoll schreiben.
Wenn Sie die Registrierung einer Ereignisquelle für ein bestimmtes Protokoll aufheben, kann die Ereignisquelle daran gehindert werden, Einträge in anderen Ereignisprotokollen zu schreiben.