0

別の PC にリモート接続し、そのコマンド ラインをフル アクセスで使用する方法はありますか?

コマンドラインからすべてのクライアントを完全に制御できるサーバーを開発しようとしています。

ubuntu サーバーになりますが、すべてのクライアントは Windows 7 Pro x64 になります。

このスクリプトを VC# .Net 3.5 で書きたいと思っていますが、最後の手段として c++ で書きます。

私のオプションは何ですか?

4

3 に答える 3

2

リモートコマンドライン?

次のように、sysinternals のPSEXEC使用します。

psexec \\machinename cmd.exe

これ以上簡単なことはありません

申し訳ありません-Linuxから制御する必要があることについて少し見逃したようです。

于 2012-08-13T15:49:38.147 に答える
0

誤解しているかもしれませんが、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);
}
于 2012-08-13T16:52:21.700 に答える
0

Linux 内からこれを試したことはありませんが、完全な Windows 環境ではうまく機能します。リモート マシンで PowerShell Remoting を調べます。Linux ボックスで C# MONO を介してリモート マシンに接続できる可能性がありますが、MONO で適切なクラスがまだ利用できるかどうかはわかりません。

于 2012-08-13T16:02:25.640 に答える