所以我需要找到我配置的 DNS 服务器。
我使用ManagementObjectSearcher
on进行 WMI 查找Win32_NetworkAdapterConfiguration
。
这在开发中运行良好。NETWORK SERVICE
在特权较低的帐户(例如)下作为服务运行时它仍然可以工作吗?
所以我需要找到我配置的 DNS 服务器。
我使用ManagementObjectSearcher
on进行 WMI 查找Win32_NetworkAdapterConfiguration
。
这在开发中运行良好。NETWORK SERVICE
在特权较低的帐户(例如)下作为服务运行时它仍然可以工作吗?
安全性和 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")`
命令
wmic /implevel:Impersonate /authlevel:Pktprivacy /namespace:\\root\cimv2 path win32_ntdomain get /all /format:list
Authenticated Users、LOCAL SERVICE 和 NETWORK SERVICE 的默认访问权限为:
- 执行方法
- 完全写入
- 启用帐户
请注意,如果您的进程未在提升的安全性下运行,您可能无法访问某些功能。
另请注意,某些操作也需要提升权限(特别是在处理安全描述符时)。