PR

イベントログ削除コマンド

スポンサーリンク

イベントログ削除をおススメします

パソコンを使用しているとイベントログが蓄積されていきます。

パソコンの管理上からいうと、イベントログは必要かもしれません。
現在どのような使用状況なのか分かるようになっています。

パソコンの保守をされる方はよく見ることがあると思いますが、一般の方が見ることはほとんどないはずです。

人に見られると個人情報のように使用状況が分かってしまいます。

個人用パソコンでも、たまにはイベントログを削除した方が良いのかもしれません。
本来パソコンのマスターを作成する場合などイベントログ削除が必要になります。

個人的に使用しているコマンドを紹介します。↓

@echo off
rem ■■イベントログ削除 bat■■

rem --画面を最小化します--
rem @if not "%~0"=="%~dp0.\%~nx0" start /min cmd /c,"%~dp0.\%~nx0" %* & goto :eof

rem ----- 管理者権限で実行 -----
echo.
echo コマンドプロンプトを管理者として実行します
echo.

for /f "tokens=3 delims=\ " %%A in ('whoami /groups^|find "Mandatory"') do set LEVEL=%%A
if not "%LEVEL%"=="High" (
powershell -NoProfile -ExecutionPolicy Unrestricted -Command "Start-Process \"%~f0\" -Verb runas"
exit
)

rem ----- イベントログ削除 -----
echo.
echo イベントログを削除します
echo.

timeout /T 3

rem --管理者チェック1/4--
rem openfiles > nul 2>&1
rem net file > nul 2>&1
rem whoami /priv | find "SeTakeOwnershipPrivilege" > nul
rem whoami /priv | find "SeLoadDriverPrivilege" > nul
rem if %ERRORLEVEL% neq 0 goto NG

rem --管理者チェック--
for /f "tokens=3 delims=\ " %%A in ('whoami /groups^|find "Mandatory"') do set LEVEL=%%A
if not "%LEVEL%"=="High" goto NG
rem --イベントログ削除--
for /f "tokens=*" %%f in ('wevtutil.exe el') do (call :LogClearing "%%f")
goto EvEND

:LogClearing
echo LogClearing... %1
wevtutil.exe cl %1
goto :eof

:NG
echo.
echo ==============================================
echo 警告
echo 実行できません
echo イベントログを削除するには、管理者として実行して下さい
echo 終了します
echo.

pause
exit

:EvEND
cls

if exist  "%programdata%\Microsoft\Event Viewer\ExternalLogs" (
rmdir /s /q "%programdata%\Microsoft\Event Viewer\ExternalLogs"
echo 保存されたログを削除しました
)

echo.
echo イベントログを削除しました
echo.

pause
exit

ログ削除に3秒の待ち時間を入れています。必要ないかも…
管理者実行必須なので管理者確認を入れていますが、コメントremで複数記載がありますので参考にして下さい。
remの行は不要です。
※保存されたログも削除対象になっています。

必要に応じてアレンジして下さい。

一般用にアレンジしました

上記は、ほかのコマンドも追加したり変更できるように考え、余分なコマンドが多く記述されているので普通に使用できるように書いてみました。

@echo off

rem ----- 管理者権限で実行 -----
for /f "tokens=3 delims=\ " %%A in ('whoami /groups^|find "Mandatory"') do set LEVEL=%%A
if not "%LEVEL%"=="High" (
powershell -NoProfile -ExecutionPolicy Unrestricted -Command "Start-Process \"%~f0\" -Verb runas"
exit
)

rem ----- イベントログ削除 -----
for /f "tokens=*" %%f in ('wevtutil.exe el') do (call :LogClearing "%%f")
goto EVEL

:LogClearing
echo LogClearing... %1
wevtutil.exe cl %1
goto :eof

:EVEL
cls

if exist  "%programdata%\Microsoft\Event Viewer\ExternalLogs" (
rmdir /s /q "%programdata%\Microsoft\Event Viewer\ExternalLogs"
echo 保存されたログを削除しました
)

echo.
echo イベントログを削除しました
echo.

timeout /T 3
exit

管理者としてイベントログを削除するコマンドです。

本来は右クリックから「管理者として実行」ですが、もし忘れても自動で管理者として実行するようになっています。

ユーザーアカウント制御が出た場合は「はい」をクリックします。

保存されたログがあれば削除し、3秒後に閉じます。

コマンドファイル(バッチファイル)の作り方

メモ帳で作成します。

1.上記コマンド文字列を全てコピーしメモ帳に張り付けます。

2.任意の名前で保存します。(文字コードANSI)
現在のWindowsメモ帳はUTF-8で保存するとBOM情報が入ります。

3.拡張子を[.bat]または、[.cmd]にすれば出来上がります。
どちらでも同じです。

拡張子を表示しておく必要があります。

タイトルとURLをコピーしました