Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Как правильно настроить фильтр события выключения питания с помощью XPath ? (http://forum.oszone.net/showthread.php?t=285576)

wiznv 25-07-2014 15:23 2381191

Как правильно настроить фильтр события выключения питания с помощью XPath ?
 
Есть иобытие:
Код:

- <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 2381193

Продублирую с 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 2384919

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

Iska 04-08-2014 16:23 2385121

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


Время: 04:55.

Время: 04:55.
© OSzone.net 2001-