Я создаю программное обеспечение для очистки журнала событий Windows.
Всякий раз, когда вы очищаете журналы из командной строки, всегда есть несколько журналов, которые нельзя очистить, потому что либо в более новых версиях Windows не используются службы, для которых эти журналы больше не предназначены, или они являются важной системой. журналы, в которые почти всегда записываются.
Однако, когда утилита событий Windows обнаруживает, что не может очистить эти журналы, она передает сообщение об ошибке пользователю. И поскольку я пытаюсь превратить этот пакетный файл в реальное программное обеспечение, я бы предпочел не иметь на экране кучу грязных сообщений об ошибках ради удобства пользователя.
Очевидным ответом на эту проблему может быть запуск командного файла отдельным фоновым сценарием пакетной обработки для очистки журналов, где пользователь не увидит никаких сообщений об ошибках, но современный антивирус действительно не любит пакетные сценарии и помечать их почти каждый раз, поэтому я не могу этого сделать.
Я попытался вместо этого создать скрипт powershell (гораздо более надежный для антивируса) для очистки журналов. Но из-за природы powershell, даже если он работает полностью в фоновом режиме, без консоли, он по-прежнему передает сообщения об ошибках в форме VBS XMessages.
Если это полезно, вот две строки кода в скрипте powershell:
wevtutil el | Foreach-Object {wevtutil cl "$_"}
exit
А для тех, кому интересно, да, я очищаю логи с правами администратора.
Мне нужно одно из следующих:
Еще один способ очистки журналов событий Windows, в котором не отображаются сообщения об ошибках, которые я могу интегрировать в создаваемое мной программное обеспечение.
Способ принудительного удаления тех журналов событий Windows, которые обычно не могут быть очищены.
Способ запуска пакетного скрипта без инсульта антивирусом.
Способ полного запуска сценария powershell в фоновом режиме без отображения сообщений об ошибках.