Обычно я могу открыть консоль управления компьютером, перейти к оснастке «Просмотр событий», открыть папку журналов Windows, щелкнуть правой кнопкой мыши Application/Security/Setup/System
вложенной папке, выберите Очистить журнал и подтвердите, нажав Clear
или Save and Clear
кнопка.
Имея достаточно прав, как я могу добиться того же эффекта с помощью командной строки, не вызывая запросов на подтверждение?
Powershell.
PS C:\>Clear-Eventlog -Log Application, System
По умолчанию не , чтобы запросить вас, но вы можете указать переключатель -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
На случай, если вы хотите очистить все журналы:
for /f %x in ('wevtutil el') do wevtutil cl "%x"
Извлечен из Вот.
Следующий PowerShell очищает все журналы событий на локальном компьютере, включая журналы операций / отладки / настройки программно (без создания экземпляра процесса wevtutil). Чтобы очистить только один журнал, измените код соответствующим образом. Это не идеально, однако иногда журналы отладки чем-то открыты, и это не вызывает никаких ошибок.
$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 "$_"}