Проблемы с сообщением Powershell Write-EventLog/Get-WinEvent

Первая команда создает запись в журнале событий, похоже, она работает, потому что я вижу данные сообщения в средстве просмотра событий. Проблема в том, что при чтении из powershell поле сообщения пусто.

write-eventlog System -source 'Microsoft-Windows-Kernel-General' -eventid 999 -message 'Kernel something or other'

get-winevent -filterHashTable @{Logname = 'System'; ID = '999'}| select-object -first 10

Может быть, эта картинка объясняет это лучше. Обратите внимание, что столбец сообщений пуст. введите здесь описание изображения


person Knuckle-Dragger    schedule 26.09.2014    source источник
comment
Я не знаю причину, но это должно работать: Get-EventLog -LogName System -InstanceId 999 | Выбрать-Объект - Первые 10   -  person Patrick    schedule 26.09.2014


Ответы (2)


Событие записывается правильно, чтобы прочитать его, используйте это:

get-winevent -filterHashTable @{Logname = 'System'; ID = '999'}| 
    select-object -first 10 | select timecreated,providername,
    @{n="Message";e={$_.properties.Value}}

Причина, по которой вы не видите его в колонке сообщений, очевидна при запуске eventvwr:

Не удается найти описание события с кодом 999 из источника Microsoft-Windows-Kernel-General. Либо компонент, вызывающий это событие, не установлен на вашем локальном компьютере, либо установка повреждена. Вы можете установить или восстановить компонент на локальном компьютере.

Если вы хотите писать пользовательские сообщения из пользовательских источников, используйте командлет New-EventLog, вот руководство для сценариста: http://blogs.technet.com/b/heyscriptingguy/archive/2013/06/20/how-использоватьpowershellдлязаписивжурналысобытий.aspx

person Raf    schedule 26.09.2014

Вот фрагмент, который в итоге заставил его работать. Кредит Рафу за ссылку, где я нашел этот ответ.

$source = "Some Name"
If ([System.Diagnostics.EventLog]::SourceExists("$source") -eq $false)
{New-EventLog -LogName $log -Source "$source"}
person Knuckle-Dragger    schedule 05.10.2014