运行远程任务管理器并从控制台输出C#PsExec中读取它

时间:2019-05-03 08:47:58

标签: c# psexec

我已经在本地计算机的控制台提示符(cmd)中输入了

psexec \\111.111.1.11 -u user -p password tasklisk

,控制台将打印正在运行的远程taskamanager程序的整个列表。 我需要使用C#应用程序执行同样的操作,并将其放入字符串中。

static string hostname = @"111.111.1.11";
        static string username = "myusername";
        static string password = "mypassword";
        string command = $@"psexec \\{hostname} -i 1 -u {username} - p {password} \c tasklist ";

public void RunRemote()
    {
        try{
            Process p = new Process();
            p.StartInfo.UseShellExecute = false;
            p.StartInfo.RedirectStandardOutput = true;
            p.StartInfo.RedirectStandardError = true;
            p.StartInfo.RedirectStandardInput = true;
            p.StartInfo.FileName = @"cmd.exe";
            p.StartInfo.Arguments = command;
            p.startInfo.WindowStyle = ProcessWindowStyle.Normal;
            p.startInfo.CreateNoWindow = false;
            p.startInfo.WorkingDirectory = @"C:\Users\myUserName";
            p.Start();
            string output = p.StandardOutput.ReadToEnd();
            string errormessage = p.StandardError.ReadToEnd();
            p.WaitForExit();
            }
     }
  catch (Exception ex)
        {
            throw ex;
        }

但是我的代码给了我本地任务管理器列表。如何获取远程任务列表? 当我删除“ \ c”时,它会无限期地工作。

0 个答案:

没有答案