1

我有一个 WMI 查询,它为进程启动检测进行事件跟踪。代码与此类似:

var startProcessQuery = new WqlEventQuery("Win32_ProcessStartTrace", $"ProcessName = 'notepad.exe'");
var _startProcessEventWatcher = new ManagementEventWatcher(startProcessQuery);

_startProcessEventWatcher.EventArrived += StartProcessEventWatcher_EventArrived;
_startProcessEventWatcher.Start();

如果当我尝试启动事件观察程序时应用程序以“正常”权限(而不是以管理员身份)启动,我会捕获带有“访问被拒绝”消息的 System.Managenet.ManagementException。

我知道要监视 WMI 事件最好是在管理员模式下,或者也有必要为“普通”用户启用访问权限,但是......


有没有办法(使用 c#)在执行查询或启动观察者 之前检测 WMI 中的用户访问?
如果是,如何针对特定范围查询 WMI 以获取当前用户访问级别(例如跟踪事件?)

谢谢洛伦佐

4

0 回答 0