閩人

我們可以借助Power Shell命令行直接查看系統中保存的所有日志文件。以管理員身份啟動Powe r Sh e l l,輸入“Wev tUtil el”命令并回車(每輸入一條命令均需回車確認,下同),即可查看到本機中所有的日志文件。繼續執行“Wev tUtil el |measure-object”命令,還可以統計日志的總數(圖2)。
我們有時需要從眾多日志文件中查找指定的日志,特別是查詢其中各大類日志下不分框的小類。比如在系統出現故障時要從“系統”日志框內的“錯誤”日志中查找出錯的原因。假設故障是在2021年9月1日之后出現的,以管理員身份啟動Power Shell,執行“Get-E v e n t L o g - L o g N a m e S y s t e m-EntryType Error -After 2021-09-01”命令,就能查看到該日期之后的所有錯誤日志(圖3)。
命令解釋:
這里的“S ystem”對應圖1中的“Win d ows日志→系統”、“Error”對應圖1右側窗格中“級別”下的“錯誤”、“-After”表示指定日期后的日志。如果需要查看其他日期后的日志,請自行更改命令中的相關參數。
從圖3中可以看出,系統默認保存的日志內容非常多。如果系統故障是最近出現的,我們可以直接查看最近記錄的日志文件,如執行“Get-EventLog -LogName System -Entr yType Error-newest 5”命令(數字5可隨意修改),可以查詢到最近記錄的5條日志(圖4)。

大量的舊日志文件還會占用過多的系統空間,我們也可以使用PowerShell來備份和刪除不需要的日志文件。
以管理員身份啟動Powe r Sh e l l,執行“get-eventlog -list”命令。在隨即打開的返回結果界面中,“M a x(K)”表示日志占用的最大空間、“E n t r i e s”表示保存的日志數量。比如在筆者的電腦中,“Security”日志保存了33026條記錄(圖5)。
如果自己的電腦最近未出現安全方面的問題,那么可以刪除“S e c u r i t y”日志,在上述的窗口中執行“ We v t U t i l c lsecurity /bu:d:\security _back.evtx”命令(如果要備份和清除其他的日志,替換其中的“Security”代碼即可),即可將當前系統中的“Sec ur i t y”日志先備份到“D:\security _back.evt x”,再刪除“事件查看器”中的全部“安全日志”。操作完后打開“事件查看器”,可以看到“安全日志”中僅保留了一條日志清除記錄(圖6)。以后如果想查看剛剛備份的日志,只要雙擊“D:\security _back.evt x”,打開“事件查看器”后依次展開“保存的日志→Security”即可。
通過上述的命令只是刪除某一類別的日志文件,如果想刪除本機中保存的所有日志文件,執行“Get-WinEvent -ListLog * -Force| % { Wevtutil.exe cl $_ .LogName }”命令即可(圖7)。不過有些日志文件需要System賬戶權限才能刪除,對于那些無法刪除的日志,我們可以借助“psexec.exe”啟動“事件查看器”,然后根據圖7所示窗口顯示的無法刪除日志的名稱,在“事件查看器”中找到對應的日志,右擊它并選擇“清除日志”就可以了(圖8)。