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-EventLog löscht eine Ereignisprotokolldatei von einem lokalen oder Remotecomputer und hebt die Registrierung aller zugehörigen Ereignisquellen für das Protokoll auf. Sie können mit diesem Cmdlet auch die Registrierung der Ereignisquellen aufheben, ohne Ereignisprotokolle zu löschen.

Die Cmdlets, die das EventLog-Substantiv enthalten, die EventLog-Cmdlets , funktionieren nur für klassische Ereignisprotokolle. Verwenden Sie Get-WinEvent, um Ereignisse aus Protokollen abzurufen, die die Windows-Ereignisprotokolltechnologie in Windows Vista und höheren Versionen des Windows-Betriebssystems verwenden.

ACHTUNG: Dieses Cmdlet kann Betriebssystemereignisprotokolle löschen, was zu Anwendungsfehlern und unerwartetem Systemverhalten führen kann.

Beispiele

Beispiel 1: Entfernen eines Ereignisprotokolls vom lokalen Computer

PS C:\> Remove-EventLog -LogName "MyLog"

Dieser Befehl löscht das Ereignisprotokoll %%amp;quot;MyLog%%amp;quot; vom lokalen Computer und hebt die Registrierung seiner Ereignisquellen auf.

Beispiel 2: Entfernen eines Ereignisprotokolls von mehreren Computern

PS C:\> Remove-EventLog -LogName "MyLog", "TestLog" -ComputerName "Server01", "Server02", "localhost"

Dieser Befehl löscht die Ereignisprotokolle MyLog und TestLog vom lokalen Computer und den Remotecomputern Server01 und Server02. Der Befehl hebt auch die Registrierung der Ereignisquellen für diese Protokolle auf.

Beispiel 3: Löschen einer Ereignisquelle

PS C:\> Remove-EventLog -Source "MyApp"

Dieser Befehl löscht die Ereignisquelle %%amp;quot;MyApp%%amp;quot; aus den Protokollen auf dem lokalen Computer. Wenn der Befehl abgeschlossen ist, kann das MyApp-Programm nicht in Ereignisprotokolle schreiben.

Beispiel 4: Entfernen eines Ereignisprotokolls und Bestätigen der Aktion

The first command lists the event logs on the local computer.
PS C:\> 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

The second command deletes the ZapLog event log.
PS C:\> Remove-EventLog -LogName "ZapLog"

The third command lists the event logs again. The ZapLog event log no longer appears in the list.
PS C:\> 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

Diese Befehle zeigen, wie Sie die Ereignisprotokolle auf einem Computer auflisten und überprüfen, ob ein Remove-EventLog-Befehl erfolgreich war.

Beispiel 5: Entfernen einer Ereignisquelle und Bestätigen der Aktion

PS C:\> Get-WmiObject win32_nteventlogfile -Filter "logfilename='TestLog'" | foreach {$_.sources}
MyApp
TestApp
PS C:\> Remove-Eventlog -Source "MyApp"
PS C:\> Get-WmiObject win32_nteventlogfile -Filter "logfilename='TestLog'"} | foreach {$_.sources}
TestApp

In diesen Befehlen werden mit dem Cmdlet %%amp;quot;Get-WmiObject%%amp;quot; die Ereignisquellen auf dem lokalen Computer aufgelistet. Sie können mit diesen Befehlen die erfolgreiche Ausführung eines Befehls überprüfen oder eine Ereignisquelle löschen.

Der erste Befehl ruft die Ereignisquellen des Ereignisprotokolls %%amp;quot;TestLog%%amp;quot; auf dem lokalen Computer ab. Eine der Quellen ist %%amp;quot;MyApp%%amp;quot;.

Der zweite Befehl verwendet den Source-Parameter von Remove-EventLog , um die MyApp-Ereignisquelle zu löschen.

Der dritte Befehl ist mit dem ersten Befehl identisch. Er zeigt, dass die Ereignisquelle %%amp;quot;MyApp%%amp;quot; gelöscht wurde.

Parameter

-ComputerName

Gibt einen Remotecomputer an. Die Standardeinstellung ist der lokale Computer.

Geben Sie den NetBIOS-Namen, eine IP-Adresse oder den vollqualifizierten Domänennamen eines Remotecomputers ein. Um den lokalen Computer anzugeben, geben Sie den Computernamen, einen Punkt (.) oder localhost ein.

Dieser Parameter beruht nicht auf Windows PowerShell-Remoting. Sie können den ComputerName-Parameter von Remove-EventLog auch dann verwenden, wenn Ihr Computer nicht für die Ausführung von Remotebefehlen konfiguriert ist.

Type:String[]
Aliases:CN
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

Hiermit werden Sie vor der Ausführung des Cmdlets zur Bestätigung aufgefordert.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-LogName

Gibt die Ereignisprotokolle an. Geben Sie den Protokollnamen eines oder mehrerer Ereignisprotokolle durch Kommas getrennt ein. Der Protokollname ist der Wert der Log-Eigenschaft , nicht logDisplayName, und Dies ist nicht zulässig. Dieser Parameter ist erforderlich.

Type:String[]
Aliases:LN
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Source

Gibt die Ereignisquellen an, die von diesem Cmdlet nicht mehr registriert werden. Geben Sie die Quellnamen und nicht den Namen der ausführbaren Datei durch Kommas getrennt ein.

Type:String[]
Aliases:SRC
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Zeigt, was geschieht, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Eingaben

None

Eingaben können nicht an dieses Cmdlet weitergereicht werden.

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 das Protokoll dann neu erstellen, können Sie nicht die gleichen Ereignisquellen registrieren. Anwendungen, die die Ereignisquellen zum Schreiben von Einträgen im ursprünglichen 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 möglicherweise keine Einträge mehr in andere Ereignisprotokolle schreiben.