在远程计算机上启动exe文件

本文关键字:启动 exe 文件 计算机 | 更新日期: 2023-09-27 18:21:08

我有一个进程,一个成功停止进程的方法。但我该如何开始呢?它是一个位于远程机器硬盘驱动器上的.exe文件。

var ui = new ImpersonateUser();
var processName = "notepad.exe";
object[] processArgs = { @"C:''WINDOWS'notepad.exe" };
try
    {
        ui.Impersonate(Domain, _userName, _pass);
        ManagementPath path = new ManagementPath
        {
            Server = "serverName",
            NamespacePath = "''ROOT''CIMV2",
            ClassName = "Win32_Process"
        };
        ManagementScope scope = new ManagementScope(path);
        ManagementClass management = new ManagementClass(path);
        var query = new SelectQuery("SELECT * from Win32_process WHERE name = '" + processName + "'");
        using (var searcher = new ManagementObjectSearcher(scope, query))
        {
            foreach (ManagementObject process in searcher.Get())
            {
                process.InvokeMethod("Terminate", null); //This work
                Thread.Sleep(3000);
                management.InvokeMethod("Create", processArgs); //doesnt work. Why ?
            }
        }
    }

关闭.exe后,如何启动它?

在远程计算机上启动exe文件

程序名称中有一个拼写错误(D而不是T)。它应该是noTepad.exe,而不是noDepad.exe。此外,我建议检查InvokeMethod返回的结果。在您的情况下,它返回9,这意味着未找到路径。这是代码的完整列表。

更新

如果InvokeMethod返回0,但在远程计算机上没有看到记事本的新实例,则意味着它是在后台运行的。但是,您应该能够在Windows任务管理器中看到这个新实例。