Код C # WMI Eventwatcher перестал работать на Windows 7 с исключением безопасности - PullRequest
0 голосов
/ 26 марта 2010

Это код, который отлично работал в Windows XP в течение многих лет. Пользователь не является локальным администратором.

WqlEventQuery query = new WqlEventQuery("SELECT * FROM Win32_ProcessStopTrace");
ConnectionOptions co = new ConnectionOptions();
co.EnablePrivileges = true;
ManagementEventWatcher watcher = new ManagementEventWatcher(new ManagementScope(@"root\cimv2",co), query);
watcher.EventArrived += StopEventArrived;
watcher.Start();

В Windows 7 возникает исключение SecurityException «Отказано в доступе» при работе от имени администратора. На XP это работает нормально, не будучи администратором.

В этой ссылке MS заявляет, что «Windows 7: пользователи с низким уровнем целостности имеют права только для чтения для локальных операций WMI.». Я думаю, что это проблема.

Но я не могу понять, как это изменить.

1 Ответ

0 голосов
/ 11 апреля 2010

Временное решение:

Я закончил тем, что создал службу Windows, которая работает в контексте «локальной системы», и командовал этой службой WCF.

...