У меня есть запрос WMI, который выполняет трассировку событий для обнаружения запуска процесса. Код похож на этот:
var startProcessQuery = new WqlEventQuery("Win32_ProcessStartTrace", $"ProcessName = 'notepad.exe'");
var _startProcessEventWatcher = new ManagementEventWatcher(startProcessQuery);
_startProcessEventWatcher.EventArrived += StartProcessEventWatcher_EventArrived;
_startProcessEventWatcher.Start();
Если приложение запускается с «обычными» привилегиями (а не с правами администратора), когда я пытаюсь запустить наблюдатель событий, я ловлю System.Manag enet. ManagementException с сообщением «Отказано в доступе».
Я знаю, что для мониторинга событий WMI лучше быть в режиме администратора или необходимо включить доступ также для «обычного» пользователя, но ...
Есть ли способ (с c#) для обнаружения доступа пользователя в WMI до выполнения запроса или запуска наблюдателя? Если да, то как можно запросить WMI о текущем уровне доступа пользователя к определенной c области (например, события трассировки?)
Спасибо, Лоренцо