← Back to Home

PowerShellでスケジュールされたタスクの作成

Views: 1007

You can try the commands on our interactive shell.

PowerShellでスケジュールされたタスクの作成

PowerShellでは、Register-ScheduledTask cmdletを使用してスケジュールされたタスクを作成することができます。このチュートリアルでは、PowerShellを使用したスケジュールされたタスクの作成と自動化されたタスクの実行について学びます。

前提条件

スケジュールされたタスクの作成

PowerShellを使用してスケジュールされたタスクを作成するには、Register-ScheduledTask cmdletを使用します。このcmdletには、以下のパラメーターを指定する必要があります:

以下は、PowerShellで作成したスケジュールされたタスクを示します。このスクリプトでは、月曜日の2:00 AMに1回だけ実行するように設定されています。

# Task Schedulerモジュールのインポート
Import-Module -Name Microsoft.PowerShell.ScheduledJob

# タスク名とアクションの定義
$taskName = "MyScheduledTask"
$action = New-ScheduledTaskAction -Execute "C:\Path\To\YourScript.ps1"

# トリガーの定義 (月曜日の2:00 AMに実行)
$trigger = New-ScheduledTaskTrigger -Weekly -Monday -At 02:00

# スケジュールされたタスクの登録
Register-ScheduledTask -TaskName $taskName -Action $action -Trigger $trigger

この例では、以下を実行しています。

  1. Task Schedulerモジュールをインポートします。
  2. タスク名とアクション (スクリプトの実行) を定義します。
  3. トリガー (月曜日の2:00 AMに実行) を定義します。
  4. Register-ScheduledTask cmdletを使用してスケジュールされたタスクを登録します。

スケジュールされたタスクの修正

既存のスケジュールされたタスクを修正するには、Get-ScheduledTask, Set-ScheduledTask, そして Remove-ScheduledTask cmdletsを使用します。

以下は、既存のスケジュールされたタスクを更新する例です。

# スケジュールされたタスクの取得
$task = Get-ScheduledTask -TaskName "MyScheduledTask"

# トリガーの更新 (火曜日の3:00 AMに実行)
$task.Trigger = New-ScheduledTaskTrigger -Weekly -Tuesday -At 15:00

# 変更を保存
Set-ScheduledTask -Task $task

この例では、以下を実行しています。

  1. スケジュールされたタスクを取得します。
  2. トリガーを更新します ($task.Trigger プロパティを使用)。
  3. 変更を Set-ScheduledTask cmdletを使用して保存します。

スケジュールされたタスクの削除

スケジュールされたタスクを削除するには、Remove-ScheduledTask cmdletを使用します。

以下は、スケジュールされたタスクを削除する例です。

# スケジュールされたタスクを削除
Remove-ScheduledTask -TaskName "MyScheduledTask"

この例では、単にタスク名を Remove-ScheduledTask cmdletに渡すことでスケジュールされたタスクを削除します。

ベストプラクティス

PowerShellでスケジュールされたタスクを作成して管理する際には、以下のベストプラクティスを遵守してください。

結論

このチュートリアルでは、PowerShellを使用したスケジュールされたタスクの作成と管理について学びました。スケジュールされたタスクを作成し、自動化されたタスクを実行することで、より重要な活動に時間を割くことができます。スクリプトを組織化し、テストを重視し、パフォーマンスをモニターすることで、スケジュールされたタスクが順調に動作することを保証するようにしてください。

Try it Now!