有没有办法远程访问另一台PC并使用它的命令行完全访问?
我正在尝试开发一台服务器,它可以通过命令行完全控制所有客户端。
它将是一个ubuntu服务器,但所有客户端都将是Windows 7 Pro x64。
我希望能够在VC#.Net 3.5中编写这个脚本,但我会用c ++作为最后的手段。
我有什么选择?
答案 0 :(得分:2)
答案 1 :(得分:0)
我从来没有在Linux中试过这个,但它在完整的Windows环境中起到了作用。查看远程计算机上的PowerShell远程处理。您可以通过Linux机箱上的C#MONO连接到远程计算机,但我不确定MONO中是否提供了正确的类。
答案 2 :(得分:0)
也许我误解了你,但你总是可以在Windows机器上实现一个C#客户端,它使用IPC从命令提示符发送输入和读取输出,并且你有一个C ++ / mono C#/ netcat服务器在运行在Linux上。客户端将来自流的所有内容转换为字符串并将其写入命令提示符,然后获取输出并将其写入流。 由Code Project提供:http://www.codeproject.com/Articles/20250/Reverse-Connection-Shell
cmd = new Process();
cmd.StartInfo.FileName = "cmd.exe";
cmd.StartInfo.CreateNoWindow = true;
cmd.StartInfo.UseShellExecute = false;
cmd.StartInfo.RedirectStandardOutput = true;
cmd.StartInfo.RedirectStandardInput = true;
cmd.StartInfo.RedirectStandardError = true;
cmd.OutputDataReceived += new
DataReceivedEventHandler(CmdOutputDataHandler);
cmd.Start();
cmd.BeginOutputReadLine();
public void CmdOutputDataHandler(object sendingProcess,
DataReceivedEventArgs cmdout)
{
output.Append(cmdout.Data);
writer.WriteLine(output);
writer.Flush();
}
// Run this in a separate thread to prevent blocking
while (true)
{
input.Append(reader.ReadLine());
input.Append("\n");
cmd.StandardInput.WriteLine(input);
input.Remove(0, input.Length);
}