別の PC にリモート接続し、そのコマンド ラインをフル アクセスで使用する方法はありますか?
コマンドラインからすべてのクライアントを完全に制御できるサーバーを開発しようとしています。
ubuntu サーバーになりますが、すべてのクライアントは Windows 7 Pro x64 になります。
このスクリプトを VC# .Net 3.5 で書きたいと思っていますが、最後の手段として c++ で書きます。
私のオプションは何ですか?
別の PC にリモート接続し、そのコマンド ラインをフル アクセスで使用する方法はありますか?
コマンドラインからすべてのクライアントを完全に制御できるサーバーを開発しようとしています。
ubuntu サーバーになりますが、すべてのクライアントは Windows 7 Pro x64 になります。
このスクリプトを VC# .Net 3.5 で書きたいと思っていますが、最後の手段として c++ で書きます。
私のオプションは何ですか?
誤解しているかもしれませんが、IPCを使用してコマンドプロンプトから入力と読み取り出力を送信するC#クライアントをWindowsマシンにいつでも実装でき、Linux上でC ++ / mono C#/netcatサーバーを実行できます。クライアントは、ストリームからのすべてを文字列に変換してコマンドプロンプトに書き込み、出力を取得してストリームに書き込みます。コードプロジェクトの礼儀: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);
}
Linux 内からこれを試したことはありませんが、完全な Windows 環境ではうまく機能します。リモート マシンで PowerShell Remoting を調べます。Linux ボックスで C# MONO を介してリモート マシンに接続できる可能性がありますが、MONO で適切なクラスがまだ利用できるかどうかはわかりません。