タスクスケジューラを PowerShell で管理してみる。<Get 編 其の二>

タスクスケジューラに登録されているタスクの情報を確認したい場合、普通に " Get-ScheduledTask -TaskName *** " コマンドレットを実行するだけでは、 [Actions][Principal][Triggers] といったプロパティの詳細は確認できません。

どうやらこれらは、単なるタスクのプロパティの一項目ではなく、これら自身がプロパティを持つオブジェクトのようです。

(↑技術的に正しい表現なのか、いまいち自信がありませんが。)

そこで、「これらのプロパティの、さらにプロパティを表示する」という方法を試してみることとします。

 

決して複雑な手順を踏むわけではありません。

たとえば " (Get-ScheduledTask -TaskName task).Actions " を実行すると、

[Execute] に powershell.exe が、

[Arguments] に E:¥script.ps1 が表示されます。

それぞれ、タスクケジューラでタスクを作成する際に入力したプログラムと引数に該当します。

 

 







 

同じように " (Get-ScheduledTask -TaskName task).Principal " を実行すると、

[UserId] に実行ユーザーである「コンピューター名¥u001」が表示され、

[LogonType] は Password となっています。

この Password というのが「ユーザーがログオンしているかどうかにかかわらず実行する」を意味しているようです。

デフォルトの「ユーザーがログオンしているときのみ実行する」のままだと、Interactive になります。

 

 

最後に " (Get-ScheduledTask -TaskName task).Triggers " を実行してみます。

[Enabled] でスケジュールの有効(True)/無効(False) がわかります。

[WeeksInterval] の値が「1」なのは、間隔が「一週間ごと」を意味していると思われ、

[StartBoundary] に開始日時である 2014-11-26T03:30:00 が表示されます。

[DaysOfWeek] に表示される「1」という値は日曜日を表しているらしく、実行する曜日を月曜日に変えてみたら「2」になりました。

7つある曜日を、数字で表現しているようです。

<Get 編 其の三> では、曜日と値の関係を詳しく見ていきます。