• WMI远程启动软件(某个应用程序)


    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Text;

    using System.Management;

    using System.Management.Instrumentation;

    namespace RemoteStartEXE

    {

      class windowsWmi

      {

        public void exStartCommand()

        {

              //ConnectionOptions指定生成wmi连接所需的设置

          string userName = "用户名";

          string password = "密码";

          ConnectionOptions connOption = new ConnectionOptions();

          connOption.Username = userName;

          connOption.Password = password;

          //ManagementPath 包装了生成和分析wmi对象的路径

          ManagementPath mngPath = new ManagementPath(@"\\" + "IP地址" + @"\root\cimv2:Win32_Process");

          ManagementScope scope = new ManagementScope(mngPath, connOption); scope.Connect();

          //ObjectGetOptions 类是指定用于获取管理对象的选项        

          ObjectGetOptions objOption = new ObjectGetOptions();

          //ManagementClass 是表示公共信息模型 (CIM) 管理类,通过该类的成员,可以使用特定的 WMI 类路径访问 WMI 数据 

          ManagementClass classInstance = new ManagementClass(scope, mngPath, objOption);

          ManagementBaseObject inParams = classInstance.GetMethodParameters("Create");

          // Fill in input parameter values 

          //inParams["CommandLine"] = @"D:\Program\UserAnts20120530\UserAnts20120530\UserAnts3\TaskWorker.exe";//只能启动进程

          inParams["CommandLine"] = "schtasks /run /tn \"程序启动\""; //其中“程序启动”是任务计划的名称,需要建立启动exe的计划任务

          InvokeMethodOptions methodOptions = new InvokeMethodOptions(null, System.TimeSpan.MaxValue);

          ManagementBaseObject outParams = classInstance.InvokeMethod("Create", inParams, methodOptions);
        }

       }

    }

  • 相关阅读:
    遇到的两个问题
    项目分析(map复习)
    while小问题
    二级指针
    映射文件实现进程通信
    struct {0}初始化
    用boost共享内存实现进程通信的例子
    mongo二维数组操作
    项目分析(channelid是如果产生的)
    string为什么可以写入共享内存
  • 原文地址:https://www.cnblogs.com/HR-LY/p/4969165.html
Copyright © 2020-2023  润新知