WMI 访问被拒绝

Posted

技术标签:

【中文标题】WMI 访问被拒绝【英文标题】:WMI Access Denied 【发布时间】:2019-03-07 09:01:37 【问题描述】:

我创建了一个只有一个任务的小型应用程序。这是为了获取远程计算机的信息。它适用于发布和调试模式非常好。当我在“.net core”项目中使用它时,应用程序会出现“拒绝访问”错误。

到目前为止我发现了什么。 如果 cmd.exe 以 SYSTEM 身份运行,应用程序会出现“拒绝访问”错误,但在用户模式下,它可以工作。

如何在系统模式下使用 WMI?我做错了什么?

ConnectionOptions options = new ConnectionOptions

   Impersonation = ImpersonationLevel.Impersonate,
   Authentication = AuthenticationLevel.PacketIntegrity,
   EnablePrivileges = true,
   SecurePassword = the_secure_password_of_remote_computer,
   Username = the_username_of_remote_computer
;

var scope = new ManagementScope(@"\\" + the_ip_address_of_remote_computer + 
                                        @"\root\cimv2", options);
try

   scope.Connect();
   if (scope.IsConnected)
   
      return true;
   
   else
   
      false;
   
 catch(Exception exception)

   // I got the exception here.
   Console.WriteLine("Exception|0", exception.Message);
   return false;

【问题讨论】:

【参考方案1】:

我使用编组来解决这个问题。

这里:http://rzander.azurewebsites.net/create-a-process-as-loggedon-user/

【讨论】:

可以添加代码吗?这可能是一个可以投票的好答案,但现在它对任何未来的读者都没有帮助。

以上是关于WMI 访问被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

WMI 访问被拒绝问题

为啥使用 WMI 连接时出现访问被拒绝错误?

在远程计算机上模拟用户时 WMI 的访问被拒绝

SCOM 监视器的 WMI 访问被拒绝错误

尝试使用 SWbemLocator 从远程计算机检索 WMI 时访问被拒绝 (80070005)

WMI - 在远程域机器中读取 IIS 应用程序时引发“拒绝访问”异常