WMI(ManagementObjectSearcher)查询是否需要提升信任?

时间:2012-08-16 18:09:24

标签: c# permissions windows-services wmi

所以我需要找到我配置的DNS服务器。

我在ManagementObjectSearcher上使用Win32_NetworkAdapterConfiguration进行WMI查找。

这在开发中很有效。在较低权限的帐户(例如NETWORK SERVICE)下作为服务运行时它是否仍然有效?

2 个答案:

答案 0 :(得分:1)

来自section of "MSDN titled Access to WMI Namespaces"

  

Authenticated Users,LOCAL的默认访问权限   服务和网络服务是:

     
      
  • 执行方法
  •   
  • 全写
  •   
  • 启用帐户
  •   

请注意you might not have access to some functions if your process isn't running in elevated security

另请注意some operations require raised privileges as well(特别是在处理安全描述符时)。

答案 1 :(得分:1)

安全性和WMI相当受限制,我相信你指的是ImpersonationLevel& AuthenticationLevel次设置。远程WMI更加棘手,但请看一下:

假冒等级:http://msdn.microsoft.com/en-us/library/windows/desktop/aa393852(v=vs.85).aspx

身份验证级别:http://msdn.microsoft.com/en-us/library/windows/desktop/aa393851(v=vs.85).aspx

以下内容可用于提升WMI(在VBS和CMD中)的提升权限并检索DNS设置,因此我假设您可以在其他语言中执行相同操作:

<强> VBS

Set oWMI = GetObject("winmgmts:{impersonationLevel=impersonate,authenticationLevel=pktPrivacy}!\\.\root\cimv2")
Set oQRY.ExecQuery("select DcSiteName,DnsForestName,DomainName from Win32_NTDomain")`

<强> CMD

wmic /implevel:Impersonate /authlevel:Pktprivacy /namespace:\\root\cimv2 path win32_ntdomain get /all /format:list