2015-01-05 2 views
2

Я пишу событие, которое срабатывает, когда специальный USB-ключ отключен от устройства, чтобы заблокировать его. Я могу запустить следующий штраф из PowerShell с помощью Get-WinEvent, и я получу ожидаемые результаты.Почему этот XPath работает в PowerShell, но не Task Scheduler?

*[System[(EventID=2102)]] and *[UserData[UMDFHostDeviceRequest[@instance="SWD\WPDBUSENUM\_??_USBSTOR`#DISK&VEN_&PROD_&REV_PMAP#070732AAB9D7B007&0#{53F56307-B6BF-11D0-94F2-00A0C91EFB8B}"]]] 

Однако затыкать, что в результатах запроса фильтра Редактирование событий в 'Запрос журнала событий является недопустимым. Что дает? Весь фильтр такой:

<QueryList> 
    <Query Id="0" Path="Microsoft-Windows-DriverFrameworks-UserMode/Operational"> 
    <Select Path="Microsoft-Windows-DriverFrameworks-UserMode/Operational"> 
*[System[(EventID=2102)]] and *[UserData[UMDFHostDeviceRequest[@instance="SWD\WPDBUSENUM\_??_USBSTOR#DISK&VEN_&PROD_&REV_PMAP#070732AAB9D7B007&0#{53F56307-B6BF-11D0-94F2-00A0C91EFB8B}"]]] 
    </Select> 
    </Query> 
</QueryList> 

Спасибо!

ответ

1

Ваш XML QueryList плохо сформирован из-за необработанных символов &.

Попробуйте &amp; вместо этого для каждого из четырех вхождений &.

+0

Я не знаю, почему PowerShell не жаловался на это. Большое спасибо! – Bigsby

+1

Это не для XPath, а для самого XML, что '&' должно быть экранировано. Если вы указали XPath на PowerShell или любую другую библиотеку в виде строки, а не вставляли в XML-файл, вы могли бы использовать необработанные '&' без проблем. – kjhughes

Смежные вопросы