ほとんどすべてのシステム管理者は、スケジュール タスクを扱う必要があります。 スケジュールされたタスクの利点は、トリガー オプションとさまざまなセキュリティ コンテキストで深いレベルの洗練されたものを構築できることです。 しかし、複雑さが支配するところでは、設定エラーが発生する可能性があります。 これらの自動化スクリプトを開発する場合、PowerShell を使用してスケジュール タスクを作成すると、プロセスが容易になります。 PowerShell を使用すると、複雑なスケジュール タスクに関わる管理および設定作業を標準化でき、手動入力から生じる通常のエラーを回避できるという利点もあります。
スケジュール タスク アクションの構築
少なくとも、スケジュール タスクはアクション、トリガーおよび関連設定のグループを持っています。 タスクを作成したら、それをシステムに登録することも必要です。
アクションを作成するために、実行するコマンドを指定する New-ScheduledTaskAction コマンドレットを使用します。
以下のコマンドは、PowerShell エンジンを起動し、適切なコマンド ライン スイッチのすべてを使用してスクリプトを渡し、スクリプトを非対話的に実行する例を示しています。
$Action = New-ScheduledTaskAction -Execute 'pwsh.exe' -Argument '-NonInteractive -NoLogo -NoProfile -File "C:\MyScript.ps1"'
Create a trigger
次に、トリガーが必要です。 いくつかの値が利用可能ですが、このタスクは特定の時間 — 午前3時 — を使って、このスクリプトを一度実行します。 オプションの完全なリストについては、New-ScheduledTaskTriggerコマンドレットヘルプページを確認してください。
$Trigger = New-ScheduledTaskTrigger -Once -At 3am
設定の作成
次に、新規スケジュールタスク コマンドを使用してスケジュール タスク を作成します。 このコマンドでは、特別なものを使用していない場合でも、Settingsパラメータに値を指定する必要があります。
$Settings = New-ScheduledTaskSettingsSet
Create the scheduled task
すべてのオブジェクトを変数として代入した後、これらの変数をそれぞれNew-ScheduledTaskコマンドに渡してスケジュール・タスク・オブジェクトを作成します。
$Task = New-ScheduledTask -Action $Action -Trigger $Trigger -Settings $Settings
Register the scheduled task
この時点で、メモリ内にスケジュール・タスク・オブジェクトが作成されました。 スケジュール タスクをコンピューター上に追加するには、Register-ScheduledTaskコマンドレットを使用してスケジュール タスクを登録する必要があります。
以下の例では、特定のユーザー名で実行するスケジュール タスクを登録しています。 特定のユーザーのコンテキストでタスクを実行するには、パスワードを提供する必要があります。 このコマンドレットで使用するすべてのオプションを確認するには、Register-ScheduledTaskコマンドのドキュメントを参照すると便利です。
Register-ScheduledTask -TaskName 'My PowerShell Script' -InputObject $Task -User 'username' -Password 'passhere'
すべてのステップを正しく実行した場合、タスク スケジューラーに新しく作成したスケジュール タスクが表示されます。
スケジュールされたタスクが登録され、Task Schedulerに表示された後、Get-ScheduledTaskコマンドレットを実行してタスクを確認することができます。
。