C#WMI Eventwatcher代码在Windows 7上停止工作,但出现安全性异常

时间:2010-03-26 08:39:24

标签: windows-7 wmi

这是多年来在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上,这可以正常工作,而不是管理员。

在这个link MS上声明'Windows 7:低完整性用户对本地WMI操作具有只读权限'。我想这就是问题所在。

但是我找不到任何关于如何改变它的线索。

1 个答案:

答案 0 :(得分:0)

解决方法:

我最终创建了一个在“本地系统”上下文中运行的Windows服务,并由WCF命令这项服务。