こんばんは!ドメイン内のパソコンで遠隔でタスクスケジューラーを作成~実行することが出来る方法をご紹介します。
目次
タスクスケジューラー リモート作成方法
タスクスケジューラーを作成する方法は以前の記事でご紹介しましたが、今回はドメイン内のパソコンにタスクスケジューラーを設定するバッチファイルをご紹介します。権限さえあればリモートで設定することが可能です。
タスクスケジューラーのコマンド
タスクスケジューラーのコマンドはschtasksです。オプションは一覧は下記になります。
C:\Users\shin>schtasks /?
SCHTASKS /パラメーター [引数]
説明:管理者がローカルまたはリモートのシステム上のスケジュール タスクの作成、削除、クエリ実行、変更、実行および終了を行います。
パラメーター一覧:
/Create スケジュール タスクを新しく作成します。
/Delete スケジュール タスクを削除します。
/Query スケジュール タスクをすべて表示します。
/Change スケジュール タスクのプロパティを変更します。
/Run スケジュールされているタスクをオンデマンドで実行します。
/End 現在実行中のスケジュールタスクを停止します。
/ShowSid スケジュールされたタスクの名前に対応するセキュリティ ID を表示します。
タスクの作成方法 バッチファイル
schtasks /create /S <リモートホスト名> /U <ユーザー名> /P <パスワード> /TN <タスク名> /SC ONCE /SD /ST /TR <実行ファイルパス>
下の構文では 192.168.10.1のパソコン で ユーザー administrator で sampletask という「タスクの作成」 をしています。対象のファイルはC:\users\administrator\downloads\test.batです。2021/11/11の11:11からタスクの開始をしています。
下記をコピペしてバッチファイルを作成すると、ドメイン内パソコンの「タスクの作成」が出来ます。
rem タスクの作成 リモート
schtasks /create /S 192.168.10.1 /U administrator /P password /TN sampletask /SC ONCE /SD 2021/11/11 /ST 11:11 /TR C:\users\administrator\downloads\test.bat
コマンドヘルプで詳細が確認できます。更に詳細を知りたい方はMicroSoftのサイトを確認ください。
SCHTASKS /Create /?
説明:管理者がローカルまたはリモートのシステム上にスケジュール タスク
を作成します。
パラメーター一覧:
/S システム
接続先のリモート システムを指定します。システムパラメーターを省略すると、既定値によりローカル システムになります。
/U ユーザー名
SchTasks.exe が実行されるユーザー コンテキストを指定します。
/P [パスワード]
与えられたユーザーのコンテキストのパスワードを指定します。省略すると入力が促されます。
/RU ユーザー名
タスクの実行に使う実行ユーザー アカウント(ユーザー コンテキスト) を指定します。システム
アカウントの有効な値は ""、"NT AUTHORITY\SYSTEM"、または "SYSTEM" です。v2 タスクには、"NTAUTHORITY\LOCALSERVICE" と"NT AUTHORITY\NETWORKSERVICE" も 3 つすべての3 つすべてに対して既知の SID と同じく利用できます。
/RP [パスワード]
実行ユーザーのパスワードを指定します。パスワードを要求するには、値は "*" または
空である必要があります。システム アカウントではこのパスワードは無視されます。/RU または
/XML スイッチのいずれかと組み合わせる必要があります。
/SC
スケジュール スケジュールの頻度を指定します。有効なスケジュールの種類は MINUTE、HOURLY、DAILY、WEEKLY、MONTHLY、ONCE、ONSTART、ONLOGON、ONIDLE、ONEVENT です。
/MO 修飾子
スケジュールの種類を詳細に指定して、スケジュールの頻度に関してより細かな制御を行います。有効な値は、下の"修飾子" の節に記述されています。
/D 日
タスクを実行する曜日を指定します。 有効な値は、MON、TUE、WED、THU、FRI、SAT および SUN です。毎月の指定 (MONTHLY) の場合は、日を 1 から 31 の間で指定します。ワイルドカード "*" を使うとすべての日を指定できます。
/M 月
月を指定します。既定の日は月の最初の日になります。有効な値は、JAN、FEB、MAR、APR、MAY、JUN、JUL、AUG、SEP、OCT、NOV および DEC です。ワイルド カード"*" を使うとすべての月が指定できます。
/I アイドル時間
待機するアイドル時間を指定します。このアイドル時間の待機後にスケジュールされた ONIDLE のタスクが実行されます。有効な範囲は、1 から 999 分です。
/TN タスク名
このスケジュール タスクを\一意に識別するための文字列をパス名の形式で指定します。
/TR 実行タスク
スケジュールされた時刻に実行するプログラムのパスおよびファイル名を指定します。
例: C:\windows\system32\calc.exe
/ST 開始時刻
タスクを実行する開始時刻を指定します。時刻はHH:mm の形式 (24 時間形式) です。たとえば、午後 2 時 30 分の場合は14:30 と指定します。/STが指定されていない場合の既定値は現在の時刻です。このオプションは /SC ONCE と併用する必要があります。
/RI 間隔
繰り返す間隔を分で指定します。これは次のスケジュールの種類には適用できません: MINUTE、
HOURLY、ONSTART、ONLOGON、ONIDLE、ONEVENT。有効な範囲: 1 - 599940 分。
/ET または /DU が指定されている場合、既定値は10 分になります。
/ET 終了時刻
タスクの実行を終了する時刻を指定します。時刻の形式はHH:mm (24 時間形式) です。たとえば、午後 2 時 50 分の場合は 14:50 と指定します。次のスケジュールの種類には適用できません: ONSTART、ONLOGON、ONIDLE、ONEVENT。
/DU 継続時間
タスクを実行する継続時間を指定します。時間はHH:mm の形式です。これは /ET と共には適用されません。また、次のスケジュールの種類には適用されません:ONSTART、ONLOGON、ONIDLE、ONEVENT。/V1 タスクの場合、/RIが指定されると、既定値は1 時間になります。
/SD 開始日
タスクを実行する最初の日を指定します。 形式はyyyy/mm/dd です。既定値は現在の日付です。これは次のスケジュールの種類には適用されません: ONCE、ONSTART、ONLOGON、ONIDLE、ONEVENT。
/ED 終了日
タスクを実行する最後の日を指定してください。形式はyyyy/mm/dd です。これは次のスケジュールの種類には適用されません: ONCE、ONSTART、ONLOGON、ONIDLE、ONEVENT。
/IT
ジョブの実行時に /RU ユーザーが現在ログオンしている場合にのみ、タスクが対話的に実行されるようにします。このタスクは、ユーザーがログインしている場合にのみ実行します。
/F
指定したタスクが既に存在する場合、タスクを強制的に作成し、警告を抑制します。
タスクの実行 バッチファイル
schtasks /Run /S <リモートホスト名> /U <ユーザー名> /P <パスワード> /TN <タスク名>
作成したタスクを即時実行するバッチファイルです。 下記のコマンドをコピペしてバッチファイルを作成すると、ドメイン内パソコンの「タスクの実行」が出来ます
rem タスクの実行(リモートコンピューター)
schtasks /Run /S 192.168.10.1 /U administrator /P password /TN sample
schtasks /Run /?
説明:
スケジュールされているタスクをオン デマンドで実行します。
パラメーター一覧:
/S システム
接続先のリモート システムを指定します。
/U ユーザー名
schtasks.exe が実行されるユーザーコンテキストを指定します。
/P [パスワード]
指定されたユーザーのコンテキストのパスワードを指定します。省略すると入力が促されます。
/I
すべての制約を無視し、タスクをすぐに実行します。
/TN タスク名
実行するタスクのパス名を\指定します。
/HRESULT
診断能力を向上させるために、プロセス終了コードはHRESULT 形式になります。
タスクの削除 バッチファイル
schtasks /delete /S <リモートホスト名> /U <ユーザー名> /P <パスワード> /TN <タスク名>
作成したタスクを削除するコマンドです。コピペしてバッチファイルとして作成できます。
rem タスクの削除 リモート
schtasks /delete /S 192.168.10.1 /U administrator /P password /TN sample
schtasks /delete /?
パラメーター一覧:
/S システム
接続先のリモート システムを指定します。
/U ユーザー名
schtasks.exe が実行されるユーザーコンテキストを指定します。
/P [パスワード]
指定されたユーザーのコンテキストのパスワードを指定します。省略すると入力が促されます。
/TN タスク名
削除するタスクのパス名を\指定します。タスクをすべて削除するには、ワイルド カード
"*" を使います。
/F
タスクを強制的に削除して、指定のタスクが実行中でも警告を出力しません。
/HRESULT
診断能力を向上させるために、プロセス終了コードはHRESULT 形式になります。
タスクスケジューラーを遠隔で作成する方法 まとめ
- タスクスケジューラーはリモートで作成可能
- リモートで即実行出来るコマンドがある
- 権限さえあればタスクスケジューラーを自由に操れる
- 作成したタスクはリモートで削除可能
USOさん、ご指摘ありがとうございます!
誤字見つけました。
作成したタスクはリモートで削除狩野