啥也不多说,直接上码:

 //远程重启方法    
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 }

最新文章

  1. android:configChanges=&quot;keyboard|keyboardHidden|orientation|screenSize&quot;
  2. HTML 样式表
  3. 【面经】【转】C程序的内存布局
  4. DotNetBar中ListViewEx控件的使用
  5. CentOS 6.5下源码安装MySQL 5.6
  6. [转] [环境搭建] VS-Visual Studio-IIS Express 支持局域网访问
  7. HDU5090--Game with Pearls 二分图匹配 (匈牙利算法)
  8. 函数调用和inline作用
  9. cpio备份命令
  10. leetcode@ [127] Word Ladder (BFS / Graph)
  11. Pro Android 4 第六章 构建用户界面以及使用控件(一)
  12. BZOJ 1734: [Usaco2005 feb]Aggressive cows 愤怒的牛( 二分答案 )
  13. ABP展现层——动态生成WebApi
  14. 3、XCode: 如何添加自定义代码片段
  15. Android初级教程进程间的通信AIDL
  16. Python作用域详述
  17. wiki 安装
  18. 使用Docker的macvlan为容器提供桥接网络及跨主机通讯
  19. idea导出可执行jar包
  20. notepad++ jstool 插件安装

热门文章

  1. ssh整合之三hibernate和spring整合
  2. spring boot 中active的profile会和标准配置合并吗
  3. mybatis的generator中xml配置问题
  4. python Flask
  5. AES(高级加密)
  6. JavaScript的基础学习
  7. 05、NetCore2.0依赖注入(DI)之Web应用启动流程管理
  8. typeof与instanceof的区别
  9. 我是如何在公司项目中使用ESLint来提升代码质量的
  10. opencv2.4.9卸载安装