PDA

Показать полную графическую версию : [решено] Как правильно настроить фильтр события выключения питания с помощью XPath ?


wiznv
25-07-2014, 15:23
Есть иобытие:
- <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
- <System>
<Provider Name="USER32" />
<EventID Qualifiers="32768">1074</EventID>
<Level>4</Level>
<Task>0</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2014-07-24T11:27:28.000000000Z" />
<EventRecordID>71900</EventRecordID>
<Channel>System</Channel>
<Computer>PCNAME.domen.local</Computer>
<Security UserID="S-1-5-21-2456476473-4187172614-1234818823-1234" />
</System>
- <EventData>
<Data>C:\Windows\system32\winlogon.exe (PCNAME)</Data>
<Data>PCNAME</Data>
<Data>Причина на перечислена</Data>
<Data>0x500ff</Data>
<Data>Выключение питания</Data>
<Data />
<Data>DOMEN\username</Data>
<Binary>FF000500000000000000000000000000000000000000000000000000000000000000000000000000</Binary>
</EventData>
</Event>

Т.к. событие 1074 включает в себя несколько "подсобытий" ( перезапуск, выключение питания) Нужно отфильтровать запрос не толко по событию 1074,
но и по <Data>Выключение питания</Data> и только это, НЕ Перезапуск компьютера.
Это нужно для выполнения программы только по событию "выключение питания"

Вот фильтр на событие 1074
<QueryList><Query Id="0" Path="System">
<Select Path="System">*[System[Provider[@Name='USER32'] and EventID=1074 ]]</Select>
</Query></QueryList>

Как туда добавить <Data>Выключение питания</Data> ?

Kazun
25-07-2014, 15:24
Продублирую с TechNet:

Для Windows 8:
<QueryList>
<Query Id="0" Path="System">
<Select Path="System">*[System[Provider[@Name='User32'] and EventID=1074] and EventData[Data[@Name='param5']='Выключение питания']]</Select>
</Query>
</QueryList>

Для Windows 7:
<QueryList>
<Query Id="0" Path="System">
<Select Path="System">*[System[Provider[@Name='User32'] and EventID=1074] and EventData[Data = 'Выключение питания']]</Select>
</Query>
</QueryList>

wiznv
04-08-2014, 08:56
Kazun, спасибо, фильтр работает но к сожалению не помогло - программа не успевает отработать и компьютер выключается. Жаль нет опции "ждать завершения задания при выключении" ...

Iska
04-08-2014, 16:23
Попробуйте назначить исполнение скрипта на завершение работы посредством групповой политики, а в самом скрипте проверяйте какое именно «подсобытие» вызвало его исполнение и, при совпадении с искомым, запускайте потребное приложение. 10 минут хватит на его исполнение?




© OSzone.net 2001-2012