C# の Winform .NET 4.0 で複数のリモート デスクトップ接続のスクリプトを作成しようとしています。
_serverList のサーバー名のリストを指定すると、
var startInfo = new ProcessStartInfo
{
FileName = "cmd.exe",
RedirectStandardInput = true,
RedirectStandardOutput = true,
UseShellExecute = false,
CreateNoWindow = false
};
var process = new Process { StartInfo = startInfo };
process.Start();
foreach (string server in _serverList)
{
process.StandardInput.WriteLine(@"mstsc.exe /v:" + server);
}
ローカル デスクトップ (Windows 7) で実行すると、完全に正常に動作します。すべてのサーバーが起動されますが、アプリケーションをサーバー (Windows Server 2003 r 2) に移植すると、これをトリガーするイベントが発生し、エラーが発生します。
「mstsc.exe」は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されませんでした
私は、mstsc.exe のフル パスを提供し、FileName = "mstsc.exe" を変更し、サーバー名を引数として提供するというバリエーションを試みましたが、どれも機能しませんでした。
サーバーで cmd.exe を起動し、手動で「mstsc.exe /v: someservername」と入力すると、動作は期待どおりで、適切なサーバーが起動されます。
何がうまくいかないのかについての洞察をいただければ幸いです