2013-12-16 4 views
0

Я пытаюсь сделать следующий запрос в WMI:процесс по CommandLine Запросы

SELECT ProcessID from Win32_Process where CommandLine='C:\Windows\system32\calc.exe' 

Но я получил ошибку «Неверный запрос». Я также попытался с:

SELECT ProcessID from Win32_Process where CommandLine='C:\\Windows\\system32\\calc.exe' 

И еще получаю ту же ошибку, и я попытался изменить одиночные кавычки в двойные кавычки, но это не сработало.

Кто-нибудь знает, может ли это сделать этот запрос?

+0

Я ищу в WMI Code Creator Process Командная строка для calc.exe и отображается как просто 'calc'. Нет exe, нет пути, просто рассчитать. Подтвердить? Я начал calc.exe из cmd.exe в случае, если это имеет значение. –

ответ

0

Да и Нет. В зависимости от типа calc.exe. Например, когда я набираю calc в окне cmd.exe, мой calc получает командную строку 'calc'. Когда я набираю calc в consolehell.exe, он получает полный путь. Переменная командной строки Win32_Process не является надежной IMO. Вот несколько разных результатов, чтобы доказать свою точку зрения.

cmd.exe        4028 C:\Windows\system32\cmd.exe /K set 
calc.exe        2580 "C:\Windows\system32\calc.exe" 
notepad.exe       3612 "C:\Windows\system32\notepad.exe" 
cmd.exe        2864 "C:\Windows\system32\cmd.exe" 
conhost.exe       480 \??\C:\Windows\system32\conhost.exe 
WMIC.exe        3596 wmic 
WmiPrvSE.exe       2272 C:\Windows\system32\wbem\wmiprvse.exe 
cmd.exe        2296 "C:\Windows\system32\cmd.exe" 
conhost.exe       3708 \??\C:\Windows\system32\conhost.exe 
notepad.exe       1284 "C:\Windows\system32\notepad.exe" 
calc.exe        1736 calc 
powershell.exe      3136 "C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe" 

Итак, чтобы сделать его работу вы будете нуждаться в пункт или в вашем SQL заявление, соответствие «известково» или «C: \ Windows \ system32 \ calc.exe»

0

Кроме Windows, добавляет иногда добавьте whitespace в командную строку после ExecutablePath и перед первым параметром.

Даже если нет и параметра Я Исполняемые был lanched с кавычками (из-за whitespaces в пути), то в большинстве случаев командная строка является ExecutablePath и окончательное whitespace в конце.

Это стоило мне нескольких часов, чтобы найти это. Приветствия!

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