タスクスケジューラを使用して PowerShell スクリプトを実行する方法
PowerShellスクリプトは、Windowsの定期メンテナンス、アップデートの展開、複雑な設定の実行など、様々なタスクを自動化する便利な方法です。しかし、毎回手動で実行するとなると、すぐに面倒になってしまいます。そこでタスクスケジューラの出番です。これは、特定の時間、起動時、または特定のイベントをトリガーとしてスクリプトを実行するように設定できる組み込みツールです。基本的に、日常的な管理タスクの手間を軽減し、一度設定すれば、ユーザーが意識することなくバックグラウンドで実行されます。ただし、特に実行ポリシーを変更している場合は、Windowsがスクリプトを信頼しないことがあることに注意してください。そのため、設定を微調整する必要があるかもしれません。ワークフローがよりスムーズになり、タスクの見落としが減り、手動でクリックする回数が大幅に減ります。
Windows のタスク スケジューラで PowerShell スクリプトをスケジュールする方法
スクリプトファイルを準備し、プロセスに慣れる
まず、PowerShell スクリプトがテストされ、期待どおりに動作していることを確認してください。C :\Scripts\myscript.ps1など、論理的な場所に保存してください。スケジューラを設定する際に正確なパスが必要になります。また、コマンドラインやタスク スケジューラの開き方に慣れていない場合は、手順を追って説明します。基本的には、スクリプトを引数として PowerShell を呼び出すタスクを作成します。設定によっては実行ポリシーエラーが発生する場合があるため、-ExecutionPolicy Bypass の設定方法やセキュリティ設定の調整方法を知っておくと便利です。
タスク スケジューラで PowerShell スクリプトを実行する
スクリプトを準備し、まず手動でテストします
- PowerShellから直接スクリプトを起動した際にエラーなく実行されることを確認してください。コマンドプロンプトまたはPowerShellウィンドウで実行してください
powershell -ExecutionPolicy Bypass -File "C:\Scripts\myscript.ps1"。そこで動作すれば、スケジュール設定の準備は完了です。動作しない場合は、まずスクリプトのトラブルシューティングを行ってください。パスや権限が問題となる場合があります。
タスクスケジューラを開く — Windowsに組み込まれた自動化のヒーロー
- 「スタート」ボタンをクリックWindows + Sまたは押下し、「タスク スケジューラ」と入力して起動します。スケジュールされたタスクの一覧を含むメインインターフェースが表示されます。メニューには、新しいタスクを作成するためのボタンがあります。または、右クリックして「基本タスクの作成」を選択することもできます(より詳細な設定が必要な場合は、「タスクの作成」を選択してください)。
新しいタスクを作成し、適切な名前を付けてセキュリティオプションを設定します
- 「タスクの作成」ウィンドウの「全般」タブで、「Daily PowerShell Backup」などの名前を付けます。ユーザーについては、「ユーザーがログオンしているかどうかに関係なく実行する」を選択して、バックグラウンドで実行されるようにします。管理者権限が必要なスクリプトを実行する場合は、 「最上位の権限で実行する」にチェックを入れます。
トリガーを設定する – スクリプトを実行するタイミングを定義する
- 「トリガー」タブに切り替えて「新規」をクリックします。「毎日」「ログオン時」「起動時」などのオプションを選択します。必要に応じて正確な時刻を設定してください。こうすることで、毎回スクリプトを手動で起動する必要がなくなります。
スクリプトで PowerShell を実行するアクションを構成する
- [アクション]タブに移動し、[新規]をクリックします。
- [アクション]で[プログラムの開始]を選択します。
- プログラム/スクリプトで、以下を参照または入力します
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe。 - 「引数の追加」に次のように入力します
-ExecutionPolicy Bypass -File "C:\Scripts\myscript.ps1"。これにより、Windows がセキュリティ ポリシーによってスクリプトをブロックすることがなくなります。 - 「開始場所(オプション)」には、スクリプトが保存されているフォルダ( など)を入力できます
C:\Scripts。これにより、相対パスの問題が解決する場合があります。
オプション: 条件、設定、履歴を微調整する
- 「条件」タブでは、マシンがアイドル状態またはAC電源に接続されている場合にのみタスクを実行するように指定できます。これは、マシンの使用頻度が高いときにタスクを実行したくない場合に便利です。
- 「設定」では、タスクの実行時間が長すぎる場合にタスクを停止したり、失敗した場合に強制的に再起動したりするオプションが利用できます。
- 実行ログを追跡したい場合は、「履歴」を確認してください。これはトラブルシューティングに便利です。
スケジュールされたタスクを保存してテストします
- [OK]をクリックし、プロンプトが表示されたら、必要に応じて管理者パスワードを入力します。
- リストでタスクを見つけ、右クリックして「実行」を選択します。これは、すべてが正しく実行されることを確認するためです。ここでスクリプトが正常に実行されれば、自動化はスムーズに動作するはずです。
パフォーマンスに注目してください
- 動作がおかしくなった場合は、タスクの履歴を確認するか、タスクのプロパティで詳細なログ記録を有効にしてください。権限やシステムポリシーによって、明確な理由もなくスクリプトの実行がブロックされる場合もあります。
ほぼこれで完了です。タスクスケジューラを使ってPowerShellを自動化すると、特に繰り返し作業で大幅な時間を節約できます。ただし、Windowsでは権限や実行ポリシーの設定により、この処理が想定以上に難しくなる場合があるので、最初の試行でうまくいかない場合は少し調整が必要になるかもしれません。
まとめ
- スクリプトを手動でテストして動作を確認してください
- タスクスケジューラを開いて新しいタスクを作成します
- いつ実行するかに基づいてトリガーを設定します
- スクリプトで PowerShell を起動するアクションを構成する
- 必要に応じて追加設定を調整してテストしてください
まとめ
スクリプトを自動実行させるのは、すべてが正しく設定されれば、状況を大きく変える可能性があります。権限やポリシーを調整するのに何度か試行錯誤する必要があるかもしれませんが、うまくいけば後は順調です。この方法によって、常に監視する必要がなくなり、スクリプトがスムーズに実行されるようになることを願っています。幸運を祈ります。スクリプトが常に完璧に動作しますように!
この記事は役に立ちましたか?