guangtouhaky
2015-03-02 03:51
采纳率: 21.8%
浏览 2.4k
已采纳

使用wmi实现远程关机。目标机器是win7系统

目标机器的防火墙已关闭。远程访问权限全开了。
代码如下:
ConnectionOptions co = new ConnectionOptions();
co.Username = "administrator";
co.Password = "";

        System.Management.ManagementScope ms = new ManagementScope("\\\\192.168.1.30\\root\\cimv2", co);
        ms.Connect();
        System.Management.ObjectQuery oq = new ObjectQuery("SELECT*FROM Win32_OperatingSystem");
        ManagementObjectSearcher query1 = new ManagementObjectSearcher(ms,oq);
        ManagementObjectCollection queryCollection1 = query1.Get();
        foreach (ManagementObject mo in queryCollection1)
        {
            string[] ss = { "" };
            mo.InvokeMethod("Reboot", ss);
            Console.WriteLine(mo.ToString());

                            报错地方是ms.connect();提示说要有足够的资源权限。如何解决。
  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • oyljerry 2015-03-02 04:08
    已采纳

    管理员设置一个密码试试。

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • guangtouhaky 2015-03-02 04:30

    密码设过了,还是同样错误

    评论
    解决 无用
    打赏 举报
  • qq_627504410 2015-03-02 05:51

    给这个用户加权限,因为默认是普通用户的权限

    评论
    解决 无用
    打赏 举报
  • guangtouhaky 2015-03-02 06:40

    权限添加,密码设置了,然后连接能连接上了,现在新的错误又出现了。。。
    foreach (ManagementObject mo in queryCollection1)
    这行报错,说是无效查询。。。。。
    我找了网上的代码和帮助文档,使用方法就是这样的啊~

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题