【Powershell】タスクスケジューラーのタスクをコマンドで登録する方法
Powershell を使ってタスクスケジューラーでのタスク登録をしてみました。
サーバでのタスク登録は手動で行った方が早いと思いますが、もしタスク数が多く、検証環境とかで何度も登録しなおさないといけない場合に備えて、メモを残しておきます。
バッチファイルですと、schtasks.exe を使います。今回はPowershellコマンドレットを利用し、「タスクスケジュール登録」を確認したいと思います。
スポンサーリンク
設定するべき項目を明確にする
今回、タスクをコマンドで登録します。
コマンドで実行するということは、先に内容を決めておきましょう。
タスクスケジューラーに登録する内容としては、下記の項目を試してみようと思います。
全般 | タスク名 |
タスク実行アカウント | |
特権の有無 | |
トリガー | スケジュール(「毎日 02:00」など) |
操作 | プログラム |
引数 |
スポンサーリンク
コマンド実行して結果を確認してみる
Powershell を管理者で実行し、見てみましょう。
呼び出し方法は、[スタートメニュー] ⇒ [Windows Powershell] と辿っていき、右クリックして、[管理者として実行] を選択します。
コマンド実行するとタスクスケジューラー関連コマンドレットが現れます。
コマンド:
スポンサーリンク
サンプルスクリプト
この中で、”New-ScheduledTaskAction”、”New-ScheduledTaskTrigger”コマンドレットと “Register-ScheduledTask” でタスクを作成してみます。
◇操作の定義を設定する
まずは、「タスクで何をするか」を決めていきましょう。
Powershellスクリプトの実行する際での注意点は、プログラムは Powershell.exe となるのですが、必ずスクリプトファイルの引数を指定します。
コマンド:
◇実行の定義を設定する
実行スケジュールの定義です。
時刻は、hh:mm:ss 表記らしいです。
タスクは「実行スケジュールは毎日 02:00 に実行する」場合のサンプルです。
コマンド:
補足:
日曜日とか曜日を指定しての実行は、”-DaysOfWeek” に実行曜日を記載します。
◇全体的な登録
最後にタスクスケジューラで全体的なタスクを登録します。
通常のタスクスケジューラーですと、タスクライブラリー一覧に登録されますが、フォルダ階層のように用途によって階層分けできます。
今回タスクの階層を1つ下げ、MyTaskというフォルダ配下にタスクを作成します。
タスク実行の注意点として、サーバ運用ですと、バックグラウンドタスクとして実行していることが多いので、権限を「最上位の特権」として指定します。
コマンド:
ユーザアカウント指定の場合
システム指定の場合
まとめ
タスクスケジューラーの登録は普段あまりしないかもしれません。
サーバ構築で本番環境、検証環境など複数のタスク設定を行うときや、タスクが数多くある時に利用します。
今回ご紹介したコマンド内容をバッチ化すれば、大幅に工数が削減され、ミスも減り便利かと思います。
スポンサードサーチ