刪除事件記錄檔或取消註冊事件來源。
語法
Remove-EventLog [-LogName] <string[]> [[-ComputerName] <string[]>] [-Confirm] [-WhatIf] [<CommonParameters>] Remove-EventLog [[-ComputerName] <string[]>] [-Source <string[]>] [-Confirm] [-WhatIf] [<CommonParameters>]
描述
Remove-EventLog Cmdlet 會刪除本機或遠端電腦上的事件記錄檔,並且取消註冊該記錄檔中所有事件來源。也可以使用這個 Cmdlet 取消註冊事件來源,但不刪除任何事件記錄檔。
有 EventLog 名詞的 Cmdlet (EventLog Cmdlet) 只適用於傳統事件記錄檔。若要在 Windows Vista 和較新版本的 Windows 上,從使用 Windows 事件記錄檔技術的記錄檔中取得事件,請使用 Get-WinEvent。
參數
-ComputerName <string[]>
指定遠端電腦。預設為本機電腦。
請輸入遠端電腦的 NetBIOS 名稱、網際網路通訊協定 (IP) 位址或完整網域名稱。若要指定本機電腦,請輸入電腦名稱、句點 (.) 或 "localhost"。
此參數並不依存於 Windows PowerShell 遠端。即使沒有將電腦設定成執行遠端命令,也可以使用 Remove-EventLog 的 ComputerName 參數。
必要? |
false |
位置? |
2 |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-LogName <string[]>
指定事件記錄檔。輸入一個或多個事件記錄檔的記錄名稱 (是 Log 屬性的值、而非 LogDisplayName),以逗號分隔。不允許使用萬用字元。此參數為必要項。
必要? |
true |
位置? |
1 |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-Source <string[]>
取消註冊指定的事件來源。輸入來源名稱 (非可執行檔名稱),以逗號分隔。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-Confirm
在執行命令前先提示確認。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-WhatIf
說明執行命令時將會發生何種情況,但不會實際執行命令。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
<CommonParameters>
這個 Cmdlet 支援一般參數:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。如需詳細資訊,請參閱 about_Commonparameters.
輸入和輸出
輸入型別是可經由管道輸出至 Cmdlet 的物件型別。傳回型別則是 Cmdlet 所傳回的物件型別。
輸入 |
無 您無法經由管道將輸入輸出至這個 Cmdlet。 |
輸出 |
無 這個 Cmdlet 不會傳回任何輸出。 |
附註
若要在 Windows Vista 與較新版本的 Windows 上使用 Remove-EventLog,請以 [以系統管理員身分執行] 選項啟動 Windows PowerShell。
如果您要先移除事件記錄檔,接著重新建立記錄檔,則您無法註冊相同的事件來源。使用事件來源而將記錄寫入原始記錄檔的應用程式將無法寫入新記錄檔。
取消註冊特定記錄檔的事件來源時,可能會造成事件來源無法將記錄寫入到其他事件記錄檔。
範例 1
C:\PS>remove-eventlog -logname MyLog 描述 ----------- 這個命令會從本機電腦刪除 MyLog 事件記錄檔並且取消註冊該記錄檔的事件來源。
範例 2
C:\PS>remove-eventlog -logname MyLog, TestLog -computername Server01, Server02, localhost 描述 ----------- 這個命令會刪除下列三部電腦上的 MyLog 與 TestLog 事件記錄檔:本機電腦 ("localhost") 以及 Server01 和 Server02 遠端電腦。該命令也會取消註冊這些記錄檔的事件來源。
範例 3
C:\PS>remove-eventlog -source MyApp 描述 ----------- 這個命令會在本機電腦上刪除記錄檔中的 MyApp 事件來源。命令完成時,MyApp 程式無法寫入任何事件記錄檔。
範例 4
C:\PS>get-eventlog -list Max(K) Retain OverflowAction Entries Log ------ ------ -------------- ------- --- 15,168 0 OverwriteAsNeeded 22,923 Application 15,168 0 OverwriteAsNeeded 53 DFS Replication 512 7 OverwriteOlder 0 Directory Service 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 C:\PS> remove-eventlog -logname ZapLog C:\PS> get-eventlog -list Max(K) Retain OverflowAction Entries Log ------ ------ -------------- ------- --- 15,168 0 OverwriteAsNeeded 22,923 Application 15,168 0 OverwriteAsNeeded 53 DFS Replication 512 7 OverwriteOlder 0 Directory Service 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 描述 ----------- 這些命令示範如何列出電腦上的事件記錄檔,並且確認 Remove-EventLog 命令已成功完成。 第一個命令會列出本機電腦上的事件記錄檔。 第二個命令刪除 ZapLog 事件記錄檔。 第三個命令再次列出事件記錄檔。ZapLog 事件記錄檔不再出現於清單中。
範例 5
C:\PS>get-wmiobject win32_nteventlogfile -filter "logfilename='TestLog'" | foreach {$_.sources} MyApp TestApp C:\PS> remove-eventlog -source MyApp C:\PS> get-wmiobject win32_nteventlogfile -filter "logfilename='TestLog'} | foreach {$_.sources} TestApp 描述 ----------- 這些命令會使用 Get-WmiObject Cmdlet 列出本機電腦上的事件來源。您可以利用這些命令確認刪除事件來源的命令是否成功完成。 第一個命令取得本機電腦上 TestLog 事件記錄檔的所有事件來源。MyApp 便是其中一個來源。 第二個命令使用 Remove-EventLog 的 Source 參數,刪除 MyApp 事件來源。 第三個命令與第一個命令的作用相同,會顯示 MyApp 事件來源已刪除。
請參閱