所以我需要找到我配置的DNS服务器。
我在ManagementObjectSearcher
上使用Win32_NetworkAdapterConfiguration
进行WMI查找。
这在开发中很有效。在较低权限的帐户(例如NETWORK SERVICE
)下作为服务运行时它是否仍然有效?
答案 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