ゆうです。こんにちは
今回は、Windowsのタスクスケジューラに登録されているタスクを
他のPCからネットワーク越しに実行させる手順を記載していこうと思います。
実行される側の操作
タスクをリモートで実行されるようにするには、「受信の規則」で通信を許可してあげる必要があります。
①受信の規則の設定画面を開きます。
コントロールパネルを開いて、「システムとセキュリティ」→「Windows Defender ファイアウォール」→「詳細設定」→「受信の規則」と進み画面を表示します。




②規則を有効化します
下の方にスクロールしていくと
スケジュールされたリモートタスク管理という項目があるため、下記青枠の項目を有効にします。


③レジストリを登録する
LocalAccountTokenFilterPolicy というレジストリエントリ値に 1 を設定します。
意味は、リモートからアクセスされる際に、実行プロセスが管理者特権を持つことを許可するものです。
管理者権限でコマンドプロンプトを起動し、下記のコードを張り付けて実行します。
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f<参考記事>:7Pro同士でリモートPCのタスクを実行したいけどエラー schtasks – Microsoft コミュニティ
正常に追加されたら、設定は完了です。

※レジストリを登録する際は、細心の注意を払い実行してください。
④実行されたいタスクを登録
今回は、特定のフォルダに保存されている「Test.exe」をタスクスケジューラで実行させるようにしました。

「Test.exe」は下記のように単純な、ウィンドウが出現するアプリケーションです。

タスクを実行する側の操作
①タスクを実行する
コマンドプロンプトを起動してタスクをリモート実行します。
「schtasks」コマンドを使用してリモート実行することが可能です。
schtasks /run /s リモートPCの名前またはIPアドレス /tn "タスク名" /u リモートPCのユーザー名 /p パスワード

②「エラー: この要求はサポートされていません。」となった場合
まず、「リモートPCの名前またはIPアドレス」が間違っていないことを確認します。
間違っていないのに、エラーとなった場合ですが、
私の場合ではVPNの接続環境(ローカルサブネット以外)から実行しようとしていたことが原因でした。
リモートされる側の設定で、「受信の規則」を開きます。
冒頭で、有効にした規則を右クリックして「プロパティ」を開きます。

次に、「スコープ」タブを開きます。
リモートIPアドレスに設定されている項目が「ローカルサブネット」となっている為、
「任意のIPアドレス」にチェックして保存します。

再度、コマンドを実行することで実行が可能になっているかと思います。
最後までお読み頂き、ありがとうございます。
何かわからないことや意見等ありましたら、ご気軽にコメントいただけたら幸いです!


コメント