Get-winEvent в XML, теперь как получить значения

Я относительно новичок в powershell, мне гораздо удобнее работать с SQL.

Мне нужно получить некоторые данные из журналов событий. До сих пор мне удалось установить, что мне нужно использовать Get-WinEvent и использовать элемент xml для получения фактической информации, которую я хочу.

Пока у меня есть:

$filterxml = "


            *[System[(EventID='4624')]]
            and
            (
            *[EventData[Data[@Name='LogonType'] and (Data='10')]]
            or
            *[EventData[Data[@Name='LogonType'] and (Data='2')]]
            )


"
$Events = Get-WinEvent -maxEvents 1 -Filterxml $filterXml
# Get out the event message data            
ForEach ($Event in $Events) {            
    # Convert the event to XML            
    $eventXML = [xml]$Event.ToXml() 

 #Now what?? I need to find out how to return the actual data in a form I 
#can put into a datatable.

}

Кажется, что должно быть так просто выбрасывать значения либо в переменные, либо прямо в таблицу данных и т. Д.

Я искал решение какое-то время без везения.


person Matthew230    schedule 11.07.2017    source источник
comment
Нашел полезный пост с соответствующим ответом: serverfault. ком/вопросы/303967/   -  person Matthew230    schedule 11.07.2017
comment
... и используйте элемент xml, чтобы получить актуальную информацию, которую я хочу. - Что делаете вы хотите?   -  person Mathias R. Jessen    schedule 11.07.2017
comment
Я сомневаюсь, что вы действительно хотите превратить объект в XML в первую очередь...   -  person BenH    schedule 11.07.2017


Ответы (1)


Вы можете использовать Get-EventLog:

$eventsIncludingTheId = Get-EventLog -LogName Application | ? { $_.EventID -eq 4624} 
# Export data as XML
$eventsIncludingTheId | Export-Clixml C:\temp\export.xml
# Reimport data from XML
$events = Import-Clixml C:\temp\export.xml

Get-EventLog предлагает вам различные разделы журнала событий (приложение, система, ...) через -LogName.

Если вы хотите узнать, какие свойства Get-Eventlogдоставляет, вы можете сделать следующее:

 Get-EventLog -LogName Application | select -first 1 | gm

который покажет вам все свойства, которые вы можете использовать в предложении Where-Object (? { $_.EventID -eq 1234)

надеюсь, это поможет

person Moerwald    schedule 11.07.2017