バッチファイルのschtasksコマンドでリモートPCにタスクを登録し、1度のみ実行、削除したいと考えています。
登録コマンドは以下です。
rem リモートPCに対しタスクを登録(実行後削除) schtasks /create /s 192.168.1.1 /ru %admin_user1% /rp %admin_pass1% /tn "%task_name%" /tr \"%batchregistration_pass%"\"%task_name%" /sc once /rl highest /F /z rem リモートPCに対しタスクを実行 schtasks /run /s 192.168.1.1 /u %admin_user1% /p %admin_pass1% /tn "%task_name%"
上記コマンドを実行したところ、以下の問題が発生します。
=schtasks /createコマンド=
0. /zコマンドを使用しているにも関わらず/st、/etコマンドがないためにxml関連のエラーが発生する。
0. /st、/etコマンドを設定しても後述の通り実行後にタスクが削除されない。
0. /st、/etコマンドの代わりに/v1コマンドを記述すると「rcpエラー」となってしまう。(指示クライアントPCがWindows10のため?)
=schtasks /runコマンド=
0. リモートPCでタスクを実行することは出来るが、実行後に削除されない。
0. 本コマンドをコメントアウトし、/createの/stにて設定、設定時間で自動実行させても実行後にタスクが削除されない。
=環境=
・指示クライアントPC(実際に上記バッチを実行する端末)
OS:Windows10
・リモートPC(コマンド内の192.168.1.1を始め、リモートでタスクスケジューラに登録される端末)
OS:Windows7、Windows10
=背景と目的=
元々、リモートPC側で定時起動のタスクAが登録されており、プログラムAを自動起動する設定をしています。
今回、指示クライアントPC側で任意のタイミングで一時登録するタスクBから同じプログラムAを動作させたいと考えています。
タスクAとタスクBではそれぞれ異なった引数を設定します。
タスクAをリモートでshtasks /runさせないのは、手動実行したことをログに記載された起動時の引数から判別するためです。
タスクAは既に正常に作動しているため、手動実行と引数を分けられるのであれば、更にタスクスケジューラを使用することにこだわりはありません。
以上です。
分かりにくい記述となってしまい恐縮ですが、
お教え頂けますでしょうか。
宜しくお願い致します。
あなたの回答
tips
プレビュー