Проблема
Я пытаюсь запланировать задание, которое отслеживает события на удаленных машинах.
Я написал сценарий на основе команды Get-EventLog
, и он работает правильно при запуске моей учетной записи,Но когда я запускаю Get-EventLog
как пользователь SYSTEM
, атрибут .Message
возвращаемых объектов показывает следующую ошибку:
Описание для идентификатора события '4724' в источнике 'Microsoft-Windows-Security-Auditing 'не может быть найден.Локальный компьютер может не иметь необходимой информации реестра или файлов DLL сообщений для отображения сообщения, или у вас может не быть разрешения на доступ к ним.Следующая информация является частью события: {somedata}
Когда я использую команду Get-WinEvent
от имени пользователя SYSTEM
, проблема не появляется, а часть .Message
отображается правильно.
Я бы придерживался Get-WinEvent
, особенно потому, что данные намного легче анализировать (благодаря методу ToXML()
), но Get-EventLog
оказывается ужасно быстрее: (
Вопрос
Кто-нибудь знает, почему Get-EventLog
не может отрендерить .Message
при запуске пользователем SYSTEM
и, возможно, как это исправить?
Чтобы избежать очевидных ответов:
- учетная запись
COMPUTER$
является членом группы DOMAIN\Event Log Readers
, - учетная запись
COMPUTER$
имеет права на чтение по сравнению с HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Security
на удаленных компьютерах, - очевидно, что записи реестра для
Microsoft-Windows-Security-Auditing
и связанных библиотек DLL идентичны как на исходном, так и на целевом компьютерах.