在.NET中访问WMI是否需要管理权限?

时间:2014-06-18 21:29:12

标签: c# .net wmi

我正在编写一个应用程序来获取一些系统信息。我想知道应用程序是否需要管理权限才能运行。我做了一些粗略的搜索WMI文档,google和SO。

在我发现的所有内容中,我都没有注意到它。我认为这意味着我不需要管理员权限。 (另外,因为我在普通用户帐户的WinXP框上测试了它并运行正常。)

无论如何.NET,x86应用程序。需要在XP和Win 7上工作。

1 个答案:

答案 0 :(得分:0)

与每个文件,内核对象或Windows WMI类中需要安全性的任何其他对象一样,名称空间和实例都有ACL,这定义了谁可以访问哪些内容。 (基于SID) 连接到WMI被视为WMI命名空间访问,它也具有ACL。 WMI上的大多数类和命名空间不需要管理帐户来连接和读取,写入是另一回事。 (注意远程访问时会发生这种变化,其上面有一个DCOM层,并且需要另一组权限,除非手动更改,否则这些权限是管理的)

您可以使用wbemtest.exe(C:\ windows \ system32 \ wbemtest.exe)或wmiexplorer(具有更好的GUI)探索WMI类和命名空间,可以使用wmimgmt探索安全性。 msc,您可以看到\\ root \ cimv2(默认命名空间)对所有经过身份验证的用户具有读访问权。

此外,微软有一个关于更改wmi权限的指南(假设你需要,通常是一个坏主意):https://technet.microsoft.com/en-us/library/cc771551(v=ws.11).aspx