連載
» 2016年12月19日 05時00分 UPDATE

Windows PowerShell基本Tips(11):【 New-ScheduledTaskTrigger 】コマンドレット――タスクスケジューラの条件を設定する

本連載は、Windows PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、「New-ScheduledTaskTrigger」コマンドレットです。

[国井傑(Microsoft MVP for Directory Services),株式会社ソフィアネットワーク]
「Windows PowerShell基本Tips」のインデックス

連載目次

 本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、「タスクスケジューラ」に登録するタスクの実行条件を設定する「New-ScheduledTaskTrigger」コマンドレットを解説します。

New-ScheduledTaskTriggerコマンドレットとは?

 「New-ScheduledTaskTrigger」は、Windows PowerShellを利用して「タスクスケジューラ」の新しいタスクを作成する際、タスクを実行するための条件を設定するコマンドレットです。

 PowerShellで新しいタスクを作成する場合、次の3つを指定します。

  • タスクを実行するための条件
  • 実行するアクション(プログラム)
  • 条件とアクションを組み合わせたタスク

 この「タスクを実行するための条件」を作成するコマンドレットが、New-ScheduledTaskTriggerです。

 なお、実行するアクションを作成するためのコマンドレットが「New-ScheduledTaskAction」、タスクを実行するための条件と実行するアクションを組み合わせて新しいタスクを作成するコマンドレットが「Register-ScheduledTask」です。

 今回は、New-ScheduledTaskTriggerコマンドレットに絞って解説し、New-ScheduledTaskAction/Register-ScheduledTaskコマンドレットは次回以降で紹介します。


New-ScheduledTaskTriggerコマンドレットの書式

New-ScheduledTaskTrigger [オプション]



New-ScheduledTaskTriggerコマンドレットの主なオプション

 New-ScheduledTaskTriggerコマンドレットの主なオプションは次の通りです。

オプション 意味
-Once 1回だけ実行する。省略可能
-AtLogon ログオン時に実行する。省略可能
-AtStartUp コンピュータの起動時に実行する。省略可能
-Daily 毎日実行する。省略可能
-At 実行する時間を指定する。省略可能
-Week 毎週実行する。省略可能
-DaysOfWeek 実行する曜日を指定する。省略可能


「2017年1月1日0:00」に一度だけタスク実行する

 タスクスケジューラで“決められた時間に一度だけプログラムを実行する”場合は、「-Once」オプションで「一度だけ実行」という条件を指定し、「-At」オプションで「実行する時間」を指定します。

 以下の実行例では、タスクを「2017年1月1日0:00」に「一度だけ実行する」ように指定しています。

コマンドレット実行例

New-ScheduledTaskTrigger -Once -At "2017/01/01 00:00:00"

(「2017年1月1日0:00」に一度だけタスク実行する)(画面1


画面1 画面1 「2017年1月1日0:00」に一度だけ実行するタスクを設定して、「$trigger」変数に格納している

 New-ScheduledTaskTriggerコマンドレットで実行した結果は、この後Register-ScheduledTaskコマンドレットで利用します。Register-ScheduledTaskコマンドレットでNew-ScheduledTaskTriggerコマンドレットの実行結果を利用できるように、必ず変数(この実行例では「$trigger」)に格納してください。



ログオン時にタスクを実行する

 タスクスケジューラで“ログオンのタイミングでプログラムを実行する”場合は、「-AtLogon」オプションで「ログオン時に実行」という条件を指定します。

コマンドレット実行例

New-ScheduledTaskTrigger -AtLogon

(ログオン時にタスクを実行する)(画面2


画面2 画面2 ログオン時に実行するタスクを設定して、「$trigger」変数に格納している


「毎週金曜日の午後5時」にタスクを実行する

 タスクスケジューラで“定期的にプログラムを実行する”場合、毎日なら「-Daily」オプション、毎週なら「-Weekly」オプションを指定します。

 以下の実行例では、タスクを「毎週金曜日の午後5時」に実行するように、「-Weekly」オプションで「毎週」を、「-DaysOfWeek」オプションで「金曜日(Friday)」を、「-At」オプションで「午後5時(5pm)」を指定しています。

コマンドレット実行例

New-ScheduledTaskTrigger -Weekly -DaysOfWeek Friday -At 5pm

(「毎週金曜日の午後5時」にタスクを実行する)(画面3


画面3 画面3 「毎週金曜日の午後5時」に実行するタスクを設定して、「$trigger」変数に格納している

 なお、「-At」オプションで時間を指定する際には「17:00:00」のように「時:分:秒」形式の他、「5pm」のように時間だけを指定することも可能です。



筆者紹介

国井 傑(くにい すぐる)

株式会社ソフィアネットワーク取締役。1997年よりマイクロソフト認定トレーナーとして、Active DirectoryやActive Directoryフェデレーションサービス(AD FS)など、ID管理を中心としたトレーニングを提供している。2007年よりMicrosoft MVP for Directory Servicesを連続して受賞。なお、テストで作成するユーザーアカウントには必ずサッカー選手の名前が登場するほどのサッカー好き。


Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。