ユーザー指定のターゲットマシン上で.exeの実行をリモートから開始するためにwinrsを呼び出すスクリプトがあります。winrsコマンドの後でバッチスクリプトの実行が停止する
は、私は、次の機能が必要:
- 起動スクリプト
- winrsターゲットPCへのターゲットPCの名前の
- プロンプトユーザー.exeファイルを実行すると、これがされていることを、スクリプトを実行したユーザーに伝えます完了しました。
- winrsの実行を停止し、終了したスクリプトを実行したユーザーに通知します。
- 終了。
- スクリプトが実行されたマシン上のすべての出力が必要で、ターゲットマシンで何も表示されないようにします。次のよう
私が持っているコードは次のとおりです。
@echo off
echo -------------------------------------------------------
echo PLEASE ENTER PC NAME OF DISCONNECTED MACHINE
echo -------------------------------------------------------
SET /p pcToReconnect=
echo Attempting to contact Agent.
call winrs -r:%pcToReconnect% "C:\Path\To The\exe that I want\toExecute.exe" >> logfile.txt 2>>&1
echo Agent reconnected. Please allow ~5mins for your management console to update.
winrsを呼び出すまでのコードが実行されると、それはInfactは、ターゲットマシン上の.exeファイルを実行しないが、それは、その後思われるリモートシェルこの後は何もしないまま開いたままです。
この時点で「シェルを終了しますか?(y/n)」はログファイルに入れられますが(cmdプロンプトでは出力されません)、「y」を押して入力すると、リモートシェルが終了し、cmd.exeプロンプトに「Terminate batch job(Y/N)」と表示されますが、最後のecho文は実行されません。
.exeが実行された後、自動的にリモートシェルを閉じるようにするにはどうしたらいいですか?実行した人のプロンプトでスクリプトが完了したことを確認してください。
すべてのお役に立ちました!
これはまったく同じ動作でした。 私はコールが、指定されたコマンドを呼び出した後にスクリプトが自分自身に戻ったことを確認したと思いましたか? 一時停止は、ありがとうございますがダブルクリックで実行すると便利です。 –
@CiaranMcKenzieどのコマンドを実行していますか?それは、コマンドが実行された後で終了することになっています。コマンド自体をテストするかもしれないので、コマンドをpingコマンドのようなものに置き換えてください。それが返されるかどうかを確認します。 –
リモートのcmdにパス/名前を入力するだけで、.exeファイルをリモートで実行したいです。 私はここに2つのPCを持っているので、あなたのコードまたは私のコードを実行すると、。exeはターゲットマシン上でリモート実行されます。関連するサービスがそのマシンで開始されていることがわかります。ログファイルにはエラーがありません。したがって、ターゲットのバックグラウンドでその.exeを実行する実際の最終目標が達成されます。 スクリプトが停止した場合、リモートマシン上で.exeが実行され、エラー/成功がログファイルに記録され、その後プロンプトが表示され、最後のエコーは起こりません。 –