リモート サーバー名: MyServerName オペレーティング システム: Windows Server 2008 R2 SP1 ドメイン名: MyDomainName ユーザー名: MyUserName パスワード: MyPassWord
ローカル デスクトップからリモート デスクトップ接続ユーティリティを使用しており、管理者ログインを使用してリモート サーバーに接続できます (管理者ログインとして MyUserName と MyPassWord を想定)。
私のリモート デスクトップでは、cmd プロンプトを開いて以下のコマンドを実行する必要があります。
C:\Users\MyUserName\hpacu
ここで、「hpacu」は、コマンド プロンプトで実行され、同じコマンド プロンプト自体に出力を表示するユーティリティです。
Windows Forms C# を使用して、これを自動化する準備をしています。
私のアプリケーションは:
TextBox - ユーザー (自分自身) からサーバー名を取得します。私は正しいサーバー名を与えます。
ボタン - 管理者の資格情報を使用してサーバーに接続し、ハードコードされたコマンドをリモートで実行します。
PsExec - このツールは、ローカル コンピューターの D ドライブに配置されています。ファイルの正確な場所は D:\PSTools\PsExe.exe です。
注:Windowsフォームexeを右クリックして別のユーザーとして実行するため、リモートマシンにアクセスするためのユーザー名とパスワードを収集していません->サーバーのドメイン名とともに管理者の資格情報を提供するため、尋ねられませんサーバーマシンにアクセスするためのユーザー名とパスワード。
私のC#ボタンクリックコード:
string arg = "cd /dd:/PStools & psexec.exe \\" + txtServerName.Text + " C:\Users\" + MyUserName + "\hpacu & Pause";
System.Diagnostics.Process.Start("CMD.Exe", "/c " + arg);
ボタンをクリックすると、リモート マシンに接続できます。コマンドプロンプトを起動してコマンドを実行することもできます。しかし、最終的に次のエラーが表示されます:「パイプの反対側にプロセスはありません。」
従来の方法 (つまり、リモート デスクトップ ユーティリティ経由で接続) でコマンドを手動で実行しようとすると、コマンドは完全に機能し、出力が得られます。進め方を教えてください。