zoukankan      html  css  js  c++  java
  • C#调用WMI关机示例

    WMI中Win32_OperationSystem的方法Win32ShutDown(flag)中flag的参数可以是下表中的任意一种:

    值 描述
    0 注销
    0 + 4 强制注销
    1 关机
    1 + 4 强制关机
    2 重起
    2 + 4 强制重起
    8 关闭电源
    8 + 4 强制关闭电源

    下面是示例:

    //关闭计算机
    private void btn_Shutdown_Click(object sender, EventArgs e)
    {
        string IPShutdown = "192.168.1.100";

        DialogResult dlResult = MessageBox.Show("确实要关闭“" + IPShutdown + "”电源吗?", "请确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
        if (dlResult == DialogResult.Yes)
        {
            string[] inParams ={ "8", "4" };
            BootComputer ShutdownBootComputer = new BootComputer();
            ShutdownBootComputer.strIp = IPShutdown;
            ShutdownBootComputer.strAdmin = txtAdmin.Text.Trim();
            ShutdownBootComputer.strPassword = txtPassword.Text.Trim();
            ShutdownBootComputer.strMothod = "Win32Shutdown";
            ShutdownBootComputer.inParams = inParams;
            ShutdownBootComputer.BootMachine();
        }
    }

    //关闭重启计算机(支持多线程)
    public class BootComputer
    {
        public string strIp, strAdmin, strPassword, strMothod;
        public string[] inParams;
        public void BootMachine()
        {
            ConnectionOptions BootConn = new ConnectionOptions();
            BootConn.Username = strAdmin;
            BootConn.Password = strPassword;
            ManagementScope ms = new ManagementScope("\\\\" + strIp + "\\root\\cimv2", BootConn);
            ms.Options.EnablePrivileges = true;
            if (!string.IsNullOrEmpty(strAdmin) && !string.IsNullOrEmpty(strPassword))
            {
                try { ms.Connect(); }
                catch { }
            }
            if (ms.IsConnected)
            {
                try
                {
                    ObjectQuery oq = new ObjectQuery("SELECT * FROM Win32_OperatingSystem");
                    ManagementObjectSearcher mos = new ManagementObjectSearcher(ms, oq);
                    ManagementObjectCollection moc = mos.Get();
                    foreach (ManagementObject mo in moc)
                    {
                        string[] ss = inParams;
                        mo.InvokeMethod(strMothod, ss);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(strIp + ":" + ex.Message + "网络不通或用户名、密码不正确!");
                }
            }
        }
    }

  • 相关阅读:
    如何使用GOOGLE高级搜索技巧
    你所认为的极限,可能只是别人眼中的起点
    飞机选座——附:东航320选坐攻略
    古诗词里,从初识到相爱到分离到重逢的漫长过程
    从零开始学摄影
    Python之运维
    Linux用户和组密令大全
    centos7 下安装生物信息软件的问题小总结
    VMware锁定文件失败开启模块diskearly的操作失败未能启动虚拟机
    linux 基本命令整理--转
  • 原文地址:https://www.cnblogs.com/liufei88866/p/1984550.html
Copyright © 2011-2022 走看看