Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Powershell get-eventlog potřebuji vytáhnout text

Zdar,
potřebuji si vyjet z EventLogu posledních 5 zpráv, sekce System, EventID 1 a dostat se k jejich popisům!
Nejdál jsem se dostal sem:

$a = (Get-EventLog -logname system -newest 8000 | Where {$_.EventID -eq 1} )

    ($a | sort-object -property eventID -descending | select-object -last 5)

ale když si tam hodíte $a|get-member
tak tam nevidíte žádnou property nebo metodu na přístup k popisu eventu- ale když si vlezu do event vieweru, tak jasně vidím, že text tam má. Resp. tady je blízko text v property Message, ale zobrazuje právě blbost:

The description for Event ID '100' in Source 'Microsoft-Windows-Kernel-Gener..' cannot be found. The local computer may not have the necessary registry information or message DLL files to display the message, or you may not have permission to access them. The following information is part of
the event:'2012-03-16T07:33:46.499Z', '2012-03-16T07:33:46.499Z'

Ostatní ID jsou v pohodě, ale tohle prostě má takhle zmšenej popis- nevím proč.

Předmět Autor Datum
$a = (Get-EventLog -logname system -newest 8000 | Where {$_.EventID -eq 1} ) $a | sort-object -prope…
stej 22.03.2012 23:37
stej
Sice je ten topic už starý a tazatel si jej pravděpodobně již nepřečte.. nicméně, pro zobrazení desc… poslední
MKc 24.10.2012 14:08
MKc
$a = (Get-EventLog -logname system -newest 8000 | Where {$_.EventID -eq 1} )
$a | sort-object -property eventID -descending | select-object -last 5

Nejdřív získáš jen ty, který mají eventId 1 a pak je podle té jedničky všechny sortuješ. Spíš asi chces sortovat podle data, nebo indexu, ne?

Hrubě by mohlo stačit

Get-EventLog -logname system -newest 8000 | 
  Where {$_.EventID -eq 1} |
  select-object -first 5

Sice je ten topic už starý a tazatel si jej pravděpodobně již nepřečte.. nicméně, pro zobrazení descriptions je lepší použít GWMI

třeba takto:

$a = get-wmiobject Win32_NTLogEvent -Filter "(Logfile='System') and (EventCode=6009)"
$b = get-wmiobject Win32_NTLogEvent -Filter "(Logfile='System') and (EventCode=6006)"
$ab = $a +=$b
$vystup = ($ab |sort Timegenerated -descending |select @{Name="Date";Expression={$_.ConvertToDateTime($_. TimeGenerated)}},EventCode,SourceName,Message)
$vystup

Descriptions u cmdletu get-eventlog kolikrát vidět nejsou

Zpět do poradny Odpovědět na původní otázku Nahoru