C# 如何在调用ManagementScope.Connect()时排除UnauthorizedAccessException故障
我正在寻找从系统收集更多关于远程WMI调用失败原因的信息的方法 中的详细步骤很有帮助,但可能是我不小心遗漏了一些内容,或者需要为我的环境配置更多的内容 当我运行.NET 4.0 C#代码(下面的代码片段)时,我看到以下异常: System.UnauthorizedAccessException发生消息=访问权限为 否认。(来自HRESULT的异常:0x80070005(E_ACCESSDENIED))C# 如何在调用ManagementScope.Connect()时排除UnauthorizedAccessException故障,c#,.net-4.0,wmi,access-denied,dcom,C#,.net 4.0,Wmi,Access Denied,Dcom,我正在寻找从系统收集更多关于远程WMI调用失败原因的信息的方法 中的详细步骤很有帮助,但可能是我不小心遗漏了一些内容,或者需要为我的环境配置更多的内容 当我运行.NET 4.0 C#代码(下面的代码片段)时,我看到以下异常: System.UnauthorizedAccessException发生消息=访问权限为 否认。(来自HRESULT的异常:0x80070005(E_ACCESSDENIED)) Source=System.Management StackTrace: 在System.Ma
Source=System.Management StackTrace: 在System.Management.ThreadDispatch.Start()中 在System.Management.ManagementScope.Initialize()中 在System.Management.ManagementScope.Connect()中 在 这是发生错误的代码。调用时引发异常 代码正在Windows 7计算机上运行,WMI连接的目标是Windows XP计算机。注意:如果我颠倒这两个角色,我会看到类似的问题 我没有在目标计算机的安全日志中看到任何错误 如果我将其凭据正在使用的用户添加到目标计算机上的Administrators组,则对
Connect()
的调用会成功,因此问题似乎确实是由于尚未授予特权或访问权限造成的
通常,当遇到拒绝访问错误时,我可以在日志中找到提供更多详细信息的条目,或者可以运行regmon或filemon来捕获一些有用的信息。但是有了这个WMI/DCOM错误,我不知道还能在哪里找到更多信息
非常感谢您的任何建议
更新:我使用进行了测试,发现访问也被拒绝,除非我以管理员身份运行。我正在尝试继续使用此工具以进一步隔离问题。目标计算机上的事件日志中是否有任何内容?此处可能有一些线索:目标计算机上的事件日志中是否有任何内容?此处可能有一些线索:
var scope = new ManagementScope("\\\\HOSTNAME\\root\\cimv2")
{
Options =
{
Impersonation = ImpersonationLevel.Impersonate,
Password = "password",
Username = "domain\\username"
}
};
scope.Connect();