我已经在本地计算机的控制台提示符(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”时,它会无限期地工作。