通常は、コンピューター管理コンソールを開き、イベントビューアースナップインに移動し、Windowsログフォルダーを開き、Application/Security/Setup/System
サブフォルダーを右クリックし、[ログのクリア]を選択して、Clear
を押して確認します。 Save and Clear
ボタン。
十分な権限を持っているのに、確認リクエストを出さずにコマンドラインを使用して同じ効果を得るにはどうすればよいですか?
パワーシェル。
PS C:\>Clear-Eventlog -Log Application, System
デフォルトはnotですが、プロンプトを表示しますが、プロンプトを表示する場合は-Confirmスイッチを指定できます。
編集:
Get-WinEvent -ListLog Application,Setup,Security -Force | % { Wevtutil.exe cl $_.Logname }
コメントのとおり、操作ログと管理ログの両方を取得する必要があります。
wevtutil enum-logs
はシステム内のすべてのログを列挙し、wevtutil clear-log
はログをクリアします。あなたの場合、それは:
wevtutil clear-log Application
wevtutil clear-log Security
wevtutil clear-log Setup
wevtutil clear-log System
wevtutil clear-log System /backup:backup.evtx
でクリアしながらバックアップすることもできます
次のPowerShellは、ローカルマシンのすべてのイベントログを消去します含むプログラムで操作/デバッグ/セットアップログ(「wevtutil」プロセスをインスタンス化せずに)。 1つのログのみをクリアするには、それに応じてコードを変更します。完璧ではありませんが、デバッグログが何かによって開かれたままになり、エラーが発生しない場合があります。
$EventLogs=Get-WinEvent -Force -ListLog *
$EventSession=new-object System.Diagnostics.Eventing.Reader.EventLogSession
foreach ($Log in $EventLogs) {
if ($Log.IsEnabled) {
if ($Log.RecordCount -gt 0) {
if ($Log.LogType -eq "Debug") {
$Log.IsEnabled=$false
$Log.SaveChanges()
$EventSession.ClearLog($Log.LogName)
$Log.IsEnabled=$true
$Log.SaveChanges()
}
else { $EventSession.ClearLog($Log.LogName) }
}
}
これは、PowerShellを介してすべてのイベントログをクリアする方法です。管理者として実行していることを確認してください
wevtutil el | Foreach-Object {wevtutil cl "$_"}