【发布时间】:2012-08-13 03:33:25
【问题描述】:
所以我需要找到我配置的 DNS 服务器。
我在Win32_NetworkAdapterConfiguration 上使用ManagementObjectSearcher 进行WMI 查找。
这在开发中运行良好。在较低权限的帐户(例如NETWORK SERVICE)下作为服务运行时,它仍然可以工作吗?
【问题讨论】:
标签: c# permissions windows-services wmi
所以我需要找到我配置的 DNS 服务器。
我在Win32_NetworkAdapterConfiguration 上使用ManagementObjectSearcher 进行WMI 查找。
这在开发中运行良好。在较低权限的帐户(例如NETWORK SERVICE)下作为服务运行时,它仍然可以工作吗?
【问题讨论】:
标签: c# permissions windows-services wmi
来自section of "MSDN titled Access to WMI Namespaces":
Authenticated Users 的默认访问权限,LOCAL SERVICE 和 NETWORK SERVICE 是:
- 执行方法
- 完全写入
- 启用帐户
注意you might not have access to some functions if your process isn't running in elevated security。
还要注意some operations require raised privileges as well(特别是在处理安全描述符时)。
【讨论】:
Security 和 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
【讨论】: