Проанализировать wevtutil XML в базу данных?

Netbackup... работает :-)

0
задан 12 August 2010 в 08:13
1 ответ

Я делаю точно это в сценарии посредством PowerShell. Целый сценарий загрузки на базу данных о 18K, таким образом, я не собираюсь повторно отправлять всю вещь здесь (хотя у меня есть универсальные идеи здесь). Обработка XML довольно проста.

Команда для получения данных о событии - то, что Вы уже знаете.

wevtutil qe Security /r:$DC /q:"*[System[((EventID=$LogonID or EventID=$FLogonID or EventID=$LogoffID or EventID=$LockoutID) and TimeCreated[@SystemTime > '$LUFilterString'] and TimeCreated[@SystemTime < '$NowFilterString'] )]] " > $DC-events.xml

Переменные в этом должны быть ясными. Я отслеживаю вход в систему, выход из системы и события локаута. При генерации "NowFilterString" в забавном формате wevtutil требует:

$Now=get-date
$Msec=$now.Millisecond
$NowFilterString=$Now.AddSeconds(-1).AddMilliseconds(-$Msec).ToUniversalTime().ToString("O")

Я усекаю миллисекунды вниз для обнуления для лучше обработки пограничных случаев.

Таким образом, теперь у Вас есть XML-файл. Теперь, что? Проанализировать тот XML-файл:

get-content ".\$DC-events.xml" | foreach {
    $Event=[xml]$_
    $DateTime=[datetime]$Event.event.System.TimeCreated.GetAttribute("SystemTime")
    codecodecodecode
}

Доступ к отдельным элементам сделан:

foreach ($Data in $Event.event.EventData.get_childNodes()) {
            if ($Data.Name -eq "TargetUserName") { $User=$Data."#text"}
            elseif ($Data.Name -eq "IpAddress") {$IP=$Data."#text"}
        }

Или другой пример

foreach ($Data in $Event.event.EventData.get_childNodes()) {
    if ($Data.Name -eq "TargetUserName") {$User=$Data."#text"}
       elseif ($Data.Name -eq "WorkstationName") {$MachineName=$Data."#text"}
       elseif ($Data.Name -eq "IpAddress") {$IP=$Data."#text"}
       # Ensure only failed logins to the right domain are processed:
       elseif ($Data.Name -eq "TargetDomainName") {$Domain=$Data."#text"}
    }

Я надеюсь, что это помогает Вам выяснить парсинг XML. Так как это - PowerShell, большинство из них с готовностью конвертируемо к стандартным вызовам.NET.

1
ответ дан 4 December 2019 в 22:59
  • 1
    Похож точно, в чем я нуждался. Большое спасибо. –  Skyhawk 23 June 2010 в 21:51

Теги

Похожие вопросы