スケジュールされたタスクをたくさん作成するか、スケジュールされたタ もしそうなら、あなたは運がいいです。 この記事では、PowerShellを使用してスケジュールされたタスクを管理する方法を学習します。
単純なアクションを実行するスケジュールされたタスクは、タスクスケジューラアプリインターフェイス(GUI)を使用して繰り返すのに十分な速 しかし、システム管理者や開発者は、複数のスケジュール、トリガー、または引数を使用して、より複雑なタスクを展開する必要がある場合があります。幸いなことに、PowerShellを使用してスケジュールされたタスクを作成および管理できます。 PowerShellを使用したスケジュールされたタスクの管理は、Windowsに組み込まれているScheduledTasksモジュールを使用することで可能になります。
目次
前提条件
これは学習によるタイプの記事なので、いくつかの前提条件がありますので、従うことができます。 PowerShellを使用してPowerShellスケジュールされたタスクを作成するための要件を次に示します。
- この記事の例では、Windows10を使用しています。 しかし、Windows Server2012以降でも同じことができます。
- Windows PowerShell5.1またはPowerShell7。Visual Studio Code、Notepad++、Windows PowerShell ISEなどのスクリプトエディタがある場合に役立ちます。
新しいスケジュールされたタスクを作成する
スケジュールされたタスクを動作させるには、アクションとトリガーの二つのコンポーネ セキュリティコンテキストと関連する一連の設定を追加することは任意です。 理解を深めるために、以下の各スケジュールされたタスクコンポーネントの簡単な説明を参照してください。
- Action–スケジュールされたタスクによって実行さ アクションは、通常、プログラムまたはスクリプトを実行することです。 スケジュールされたタスクには、複数のアクションを含めることができます。
- Trigger–スケジュールされたタスクが実行されるタイミングを制御します。 トリガーは、毎日または時間ごとの繰り返しのスケジュールを設定するなど、時間ベースにすることができます。 トリガーは、コンピュータの起動、ユーザーのログイン、ログに記録されたイベントなどの検出されたアクティビティに基づいてタスクを実行するアクティ
- Principal–スケジュールされたタスクの実行に使用されるセキュリティコンテキストを制御します。 特に、プリンシパルには、スケジュールされたタスクで使用されるユーザーアカウントと必要な権限が含まれます。
- 設定–スケジュールされたタスクの動作をどのように制御するオプションと条件のセットです。 例として、タスクが使用されていない日数が連続した後に削除されるようにタスクをカスタマイズできます。
スケジュールされたタスクの作成中に、プリンシパルと設定は明示的に必要ではありません。 代わりにデフォルト値が使用されます。
タスクアクションの作成
スケジュールされたタスクに何かをさせたい場合は、新しいタスクアクションを作成します。 この例では、PowerShellを呼び出すタスクを作成します。exeを実行し、スクリプトを実行します。 スクリプトエディタを準備してください。p>
以下のスクリプトはランダムな例に過ぎず、使用する必要はないことに注意してください。 必要に応じて任意のスクリプトを使用できます。 ただし、以下のスクリプトを使用すると、スケジュールされたタスクが機能したかどうかを確認できる簡単に検証可能な結果が作成されます。
以下のスクリプト例は、実行されると、アプリケーションイベントログから最新の上位10件のイベントを取得します。 次に、イベントを新しいXMLファイルにエクスポートします。c:\temp フォルダ。 以下のコードをコピーし、スクリプトエディタに貼り付け、ファイル名Get-LatestAppLog.ps1を任意のフォルダに保存します。以下のコードは、New-ScheduledTaskAction
$taskAction
powershell.exe
実行可能ファイルを呼び出し、引数を渡して実行します。C:\scripts\Get-LatestAppLog.ps1.
上記のコマンドをコピーし、PowerShellで実行します。 $taskAction
変数の結果のオブジェクトは、以下のスクリーンショットのようになります。
トリガーの追加
タスクアクション逃げろ トリガーの作成に使用するコマンドレットは、New-ScheduledTaskTrigger
コマンドレットです。 以下のコマンドは、毎日午後3時に実行するトリガーを作成します。 PowerShellでコードをコピーして実行します。
# Create a new trigger (Daily at 3 AM)$taskTrigger = New-ScheduledTaskTrigger -Daily -At 3PM$tasktrigger
$tasktrigger
変数の結果のオブジェクトは、下の画像と同じようになります。
タスクの登録
これまで、新しいスケジュールされたタスクを作成するための基本要件を作成しました。 次のステップは、スケジュールされたタスクを作成し、システムに登録することです。以下のコードは、Register-ScheduledTask
-Action
$taskAction
-Trigger
$taskTrigger
変数の内容を渡すために必要です。上記のコードをコピーし、PowerShellで実行します。 その結果、以下に示すように、新しいスケジュールされたタスクが登録されます。
タスクの実行
スケジュールされたタスクを作成した後、スケジュールされたタスクがシステムに存在することを確認する必要があります。 タスクスケジューラを開き、リストからスケジュールされたタスクを見つけます。 リストに登録されたタスクが表示されます。
以下のPowerShellコマンドを実行して、登録されたスケジュールされたタスクが存在することを確認することもできます。p>
Get-ScheduledTaskInfo -TaskName ExportAppLog
以下の結果のスクリーンショットのように、同様の出力が表示されるはずです。