C# WMI Определение уровня доступа пользователя - PullRequest
1 голос
/ 15 апреля 2020

У меня есть запрос 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 области (например, события трассировки?)

Спасибо, Лоренцо

...