batch
複数のリモートPCで自動スクリプトを実行するためにファイルを作成しようとしています。
メインマシンは、任意のリモートPCに接続して、ローカルのスケジュールされたタスクを設定できる必要があります。
バッチファイルは次のコマンドを使用します。
schtasks /delete <--- remove any previous version
/S \\10.1.2.3 <--- the remote PC's IP
/U theAdministrator <--- the username to access the PC
/P MyPassword <--- the password to access the PC
/TN MyTask <--- task name
/F <--- don't ask, just do it option
schtasks /create
/S \\10.1.2.3
/U theAdministrator
/P MyPassword
/RU theAdministrator <--- the username to execute the task
/RP MyPassword <--- the password to execute the task
/SC dayly /MO 1 <--- run every day
/TN MyTask
/TR C:\task.bat <--- the script to run on the remote PC
最初のコマンドを起動すると/delete
すべてが機能しますが、2番目のコマンドは警告を返します:
「タスクは作成されましたが、アカウント情報を設定できなかったため、おそらく実行されません」
(これがそうでない場合は申し訳ありません正確なエラーメッセージですが、自分で翻訳する必要があります)
/delete
コマンドはOKであり、/create
実行されなくてもタスクが作成されるため、ユーザー名とパスワードは正しいと確信しています。
したがって、問題はオプション/RU
にあるはずです.../RP
解決:
このエラーメッセージがないとコマンド自体を実行できませんでしたが、とにかく目的を達成し、2つの異なるオプションを見つけました。
ATコマンドを使用する最も簡単な方法:
AT \\10.1.2.3 12:00 C:\task.bat
問題はありませんが、実行する時間を指定する必要があります。つまり、タスクをすぐに実行したい場合は、%time%
変数をチャットする必要があります。
このオプションでは、ユーザーにタスクを実行するように設定することもできません(管理者としてテストし、タスクをとして実行するように設定しましたNT AUTHORITY/SYSTEM
)
PsToolsを使用したフル機能の方法:コマンドをに
渡すschtasks /create
PsExec
set command=schtasks /create /SC dayly /MO 1 /TN MyTask /TR C:\task.bat /RU theAdministrator /RP MyPassword
PsExec \\10.1.2.3 -u theAdministrator -p MyPassword %command%
NB。リモートPCにアクセスするため
のターゲットIP、ユーザー、およびパスワードPsExec
は、コマンド内で設定する必要があるため、で必要ありませんschtasks
。
スクリプトtask.batは、ターゲットPCのルートC:\にすでに存在します。