Как правильно избежать кавычек в WMI Query

У меня есть следующий запрос WMI, который опрашивает, был ли файл создан в C:\test :

Select * From __InstanceCreationEvent Within 1
Where TargetInstance Isa "Cim_DirectoryContainsFile"and TargetInstance.GroupComponent="Win32_Directory.Name='C:\\test'"

Я могу запустить это в wbemtest.exe без проблем — вот вывод из wbemtest:

введите описание изображения здесь

Тем не менее, когда я пытаюсь запустить mofcomp myfile.mof в CMD я получаю ошибку «непарсируемый запрос». В файле .mof мой запрос выглядит так:

"Select * From __InstanceCreationEvent Within 1 ""Where TargetInstance Isa \"Cim_DirectoryContainsFile\" ""and TargetInstance.GroupComponent=\"Win32_Directory.Name=\"C:\\\\test\"\"";

И я действительно не могу понять, что не так с моим персонажем, сбежавшим …
Я знаю, что в WQL мне не нужно объединять строки, поэтому я не думаю, что это проблема. Тем не менее, я понятия не имею, нужно ли мне использовать одинарные или двойные кавычки, или нужно ли избегать одинарных кавычек внутри набора двойных или использовать ли двойные кавычки в наборе кавычек …

Документация по этой детали практически отсутствует, поэтому буду очень признателен, если кто-нибудь, имеющий опыт, сможет мне помочь!

Спасибо

1

Решение

Этот фильтр можно записать так:

"Select * From __InstanceCreationEvent Within 1 ""Where TargetInstance Isa \"Cim_DirectoryContainsFile\" ""and TargetInstance.GroupComponent=\"Win32_Directory.Name=\'C:\\\\test\'\"";

и это работает без проблем. Увидеть этот ответ для более подробной информации о том, что здесь произошло. Похоже, что какая-то проблема с Notepad++ мешает этому форматированию.

Также обратите внимание на использование одинарных и двойных кавычек в строке фильтра.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]