Freigeben über


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-EventLoglö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-EventLogBefehl 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-EventLogverwenden, 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-EventLogunter 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.