啥也不多说,直接上码:

 //远程重启方法    
public static bool Shutdown(ManagementScope scope)
{
ObjectQuery query=new ObjectQuery("select * from Win32_OperatingSystem");
using(var searcher=new ManagementObjectSearcher(scope,query))
{
ManagementObjectCollection operates=searcher.Get();
foreach(ManagementObject item in operates)
{
item.InvokeMethod("Reboot",str);
}
}
return true;
}
 首先引用动态库AxMSTSCLib.dll跟MSTSCLib.dll。

 using system.Management;
using system.net.Sockets;
using system.net;
using system.Diagnostics;
namespace WMI
{
   public Class WMITools
10 {   //远程开机方法
  public static void WakeUp(string macAddress)
  {     if(string.IsNullOrWhiteSpace(macAddress))
return;
    byte[] mac =GetComputerMac(macAddress);
    WakeUp(mac);
  }   //远程开机,网卡需要具备远程唤醒功能
  private static void WakeUp(byte[] mac)
  {
    UdpClient client =new UdpClient();
    client.Connect(IPAddress.Broadcast,);
    byte[] packet=new byte[*];
    for(int i=;i<;i++)
    {
packet[i]=0xFF;
}
    for(int i=;i<;i++)
    {
      for(int j=;j<;j++)
      {
packet[i*+j]=mac[j];
}
    }
    int result =client.Send(packet,packet.Length);
    client.Close();
  }   //返回MAC值
  private static byte[] GetComputerMac(string macStr)
  {
    byte[] mac =new byte[];
    string[] str=macStr.Split(':','-');
    for(int i=;i<str.Length;i++)
    {
      mac[i]=Convert.ToByte(str[i],);
    }
    return mac;
  }   public static ManagementScope CreateManagementScope(string server,string userName,string pwd)
  {
    string serverString =@"\\"+server+@"\root\cimv2";
    ManagementScope scope=new ManagementScope(serverString);
    scope.Options =new ConnectionOptions
    {
        UserName=userName,
        Password=pwd,
        Impersonation=ImpersonationLevel.Impersonate,
        Authentication=AuthenticationLevel.PacketPrivacy
    };
    return scope;
  }   //远程关机方法   public static bool Shutdown(ManagementScope scope)
  {
    ObjectQuery query=new ObjectQuery("select * from Win32_OperatingSystem");
    using(var searcher=new ManagementObjectSearcher(scope,query))
    {
      ManagementObjectCollection operates=searcher.Get();
      foreach(ManagementObject item in operates)
      {
        string[] str ={""};
        item.InvokeMethod("Shutdown",str);
      }
    }
    return true;
  }   //远程关软件方法   public static bool CloseSoft(ManagementScope scope,string processName)
  {
    SelectQuery query =new SelectQuery("select * from Win32_Process where Name='"+processName+"'");
    using (var searcher=new ManagementObjectSearcher(scope,query))
    {
      foreach(ManagementObject item in searcher.Get())
      {
        if(item["Name"].ToString()==processName)
        {
          item.InvokeMethod("Terminate",null);
        }
      }
    }
    return true;
  }
}
104 }

C# WMI 远程PC(开机、关机、重启)的更多相关文章

  1. windows提权操作以及系统开机关机重启代码(用到了LookupPrivilegeValue和AdjustTokenPrivileges调整进程的Token权限)

    对于UAC提权操作,一般在编译期间,如果程序有需求要提权,会在编译器里设置,vs2010比较简单,在工程属性里可以直接设置,vs2005稍微有点儿麻烦,参考这篇文章: http://www.seany ...

  2. mac OS 查看开机/关机/重启记录

    last 查看最近的开关机.登录用户等记录 以及操作时间节点. last | grep reboot 查看重启记录 last | grep shutdown 查看关机记录

  3. 程序的开机关机重启,开机启动,休眠功能delphi实现(使用AdjustTokenPrivileges提升权限)

    TShutDownStatus = (sdShutDown,sdReboot,sdLogOff,sdPowerOff); procedure ShutDown(sdStatus : TShutDown ...

  4. C# 关机/重启/注销计算机

    一.调用 shutdown.exe 执行操作 调用 shutdown.exe 执行计算机关机.重启.注销操作,还可以设置多长时间后执行操作,代码如下: 1 /// <summary> 2 ...

  5. 【Linux 操作系统】Ubuntu 基础操作 基础命令 热键 man手册使用 关机 重启等命令使用

    . : 关机, 如果将Linux默认运行等级设置为0, 系统将无法启动; -- : 多用户模式, 允许使用网络文件系统, 一般不使用图形界面登陆就是这种模式; -- : 多用户图形界面模式, 该模式下 ...

  6. Ubuntu 基础操作 基础命令 热键 man手册使用 关机 重启等命令使用

    . : 关机, 如果将Linux默认运行等级设置为0, 系统将无法启动; -- : 多用户模式, 允许使用网络文件系统, 一般不使用图形界面登陆就是这种模式; -- : 多用户图形界面模式, 该模式下 ...

  7. Linux几种关机(重启)相关命令

    在linux下一些常用的关机/重启命令有shutdown.halt.reboot.及init,它们都可以达到重启系统的目的,但每个命令的内部工作过程是不同的,通过本文的介绍,希望你可以更加灵活的运用各 ...

  8. Linux基础二(挂载、关机重启与系统等级)

    一.Linux 基础之挂载 1. 挂载和查询 1.1 挂载 什么叫挂载?装系统的时候要给硬盘分区,在 Windows 中要分 C 盘 D 盘 DEF 盘,这个操作我们叫做分配盘符,分配盘符之后我们就可 ...

  9. Linux开机、重启和用户登录注销(2)

    1.关机&重启命令 1.1基本介绍 shutdown shutdown -h now :表示立即关机 shutdown -h 1:     表示1分钟后关机 shutdown -r now : ...

随机推荐

  1. JS解析JSON字符串

    问题描述:后台需要传递给前台一些数据,用于页面数据显示,因为是一些Lable标签,所以数据传递到前台需要解析. 思路:因为数据比较杂乱,所以我选择传递的数据类型是Json格式,但是数据展示时需要解析成 ...

  2. jquery mouseout mouseover 多次执行

    用jquery,mouseout,mouseover,随着鼠标移动,事件被触发了多次(冒泡),换成js onmouseover,onmouseout也是一样.最终的解决办法是,用jquery,mous ...

  3. Spring Cloud学习笔记-004

    高可用注册中心 在微服务架构这样的分布式环境中,需要充分考虑发生故障的情况,所以在生产环境中必须对各个组件进行高可用部署,对于微服务如此,对于服务注册中心也一样.如果一直使用单节点的服务注册中心,这在 ...

  4. SQL基础-----DML语句

    之前已经介绍过SQL基础之DDL(数据库定义语言)语句,http://www.cnblogs.com/cxq0017/p/6433938.html(这是地址) 这篇文章主要介绍DML语句(数据库操纵语 ...

  5. codewars.DNA题目几种解法分析(字符串替换)

    题干: 意思就是字符串替换,"A"与"C"配对,"T"与"G"配对,DNA不为空. 解法一:我的解法,用for循环遍历字 ...

  6. 洛谷 P2590 [ZJOI2008]树的统计(树链剖分)

    题目描述一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w. 我们将以下面的形式来要求你对这棵树完成一些操作: I. CHANGE u t : 把结点u的权值改为t II. QMAX u v ...

  7. 【PYTHON】用户登录三次错误锁定

    黑名单:blacklist.txt 用户名单:username_password.py # Author:Stephen Yuan # 用户名和密码 username_password = { ', ...

  8. APP的宣传方式有哪些

    APP应用已经成为了互联网不可缺少的话题,事实上,开发一款移动APP的成本不是很高,但是怎样以最低的成本得到最大的推广效果,这是企业和开发者都很关心的一个问题.下面,我们来探讨一下这个问题. 1.一款 ...

  9. Hibernate 学习之Query查询(HQL查询)

    package com.itcloud.test; import com.itcloud.pojo.Dept; import org.hibernate.Session; import org.hib ...

  10. localStorage学习总结

    一.本地存储 在HTML5诞生之前,网站如果想在浏览器端存储数据,只能使用Cookie,使用Cookie有较多的限制. Cookie问题: 1.cookie大小限制在4K左右(各个浏览器不一致) 2. ...