概要: タスクスケジューラとPowerShellの組み合わせは、Windows環境での業務自動化に不可欠です。本記事では、PowerShellスクリプトをタスクスケジューラで確実に自動実行するための基本的な設定から、引数の渡し方、非表示実行、管理者権限での実行といった高度なオプションまでを網羅します。さらに、実行されないといった一般的なトラブルシューティング方法も詳しく解説し、安定した自動化運用の実現をサポートします。
- タスクスケジューラでPowerShellスクリプトを実行する基本設定
- PowerShellスクリプト実行時の高度なオプション:引数、非表示、管理者権限
- タスクスケジューラのPowerShellタスクを効率的に登録・管理する方法
- PowerShellスクリプトがタスクスケジューラで実行されない時のトラブルシューティング
- 安定したPowerShellタスク運用のためのベストプラクティスとヒント
- AIでPowerShell自動実行をさらにスマートに:あなたの秘書がタスクを整理・自動化
- まとめ
- よくある質問
- Q: タスクスケジューラでPowerShellスクリプトを実行する際の基本的な「プログラム/スクリプト」と「引数」の設定方法を教えてください。
- Q: タスクスケジューラからPowerShellスクリプトを管理者権限で実行するには、どのような設定が必要ですか?
- Q: PowerShellスクリプトがタスクスケジューラで実行されても、ウィンドウが表示されないようにするにはどうすれば良いですか?
- Q: タスクスケジューラに登録したPowerShellスクリプトが実行されない場合、どのような原因が考えられますか?
- Q: PowerShellを使って、タスクスケジューラに登録されたタスクをエクスポートすることはできますか?
タスクスケジューラでPowerShellスクリプトを実行する基本設定
新規タスク作成と基本アクションの設定
Windows環境でPowerShellスクリプトを自動実行させるためには、タスクスケジューラが非常に強力なツールとなります。
まず、タスクスケジューラを開くには、「ファイル名を指定して実行」(Win + R)で「taskschd.msc」と入力するか、スタートメニューから「タスクスケジューラ」を検索して起動します。
新しいタスクを作成する際は、右側の「操作」ペインから「タスクの作成」を選択してください。ここでは、タスク名や説明を設定し、後から識別しやすいように詳細を記述しておくことが推奨されます。
最も重要な「アクション」タブでは、「新規」ボタンをクリックし、「プログラムの開始」を選択します。
「プログラム/スクリプト」の欄には、PowerShell実行ファイルへのパス、通常は「powershell.exe」と入力します。
これにより、タスクスケジューラはPowerShellプロセスを起動し、指定されたスクリプトを実行する準備が整います。
トリガー設定と実行アカウントの選択
タスクがいつ実行されるかを定義するのが「トリガー」設定です。
「トリガー」タブで「新規」ボタンをクリックすると、様々な実行条件を選択できます。
例えば、「毎日」「毎週」「毎月」といった定期的なスケジュールはもちろん、「コンピューターの起動時」「ログオン時」「特定のイベント発生時」など、幅広い条件でタスクを起動することが可能です。
開始日時を指定し、必要に応じて繰り返し間隔や停止条件を設定します。
次に重要なのが「セキュリティオプション」です。ここで「実行するユーザーアカウント」を指定します。
スクリプトがアクセスするリソース(ファイル、レジストリ、ネットワーク共有など)に対する適切な権限を持つアカウントを選択することが不可欠です。
特に、ユーザーがログオンしているかどうかに関わらず実行したい場合は、「ユーザーがログオンしているかどうかにかかわらず実行する」を選択し、アカウントのパスワードを入力する必要があります。
これにより、バックグラウンドでの安定した自動実行が可能になります。
スクリプトパスと引数の渡し方
タスクスケジューラでPowerShellスクリプトを確実に実行させるには、「アクション」タブでの「プログラム/スクリプト」と「引数の追加」の指定が鍵となります。
「プログラム/スクリプト」には、通常「powershell.exe」と入力しますが、PowerShell Coreを使用する場合は「pwsh.exe」とします。
そして、「引数の追加」には、実行したいスクリプトのパスと、PowerShellに渡す追加のパラメーターを記述します。
基本的な書式は以下のようになります。
-NoProfile -ExecutionPolicy Bypass -File "C:\Scripts\MyScript.ps1" -Param1 Value1
-NoProfile: PowerShellプロファイルを読み込まずに起動し、余計な影響を避けます。-ExecutionPolicy Bypass: スクリプト実行ポリシーを一時的にバイパスし、スクリプトがブロックされるのを防ぎます。-File "C:\Scripts\MyScript.ps1": 実行したいPowerShellスクリプトの絶対パスを指定します。-Param1 Value1: スクリプトに渡したい引数です。スクリプト内でparam()ブロックを使ってこれを受け取ることができます。
また、「開始(オプション)」の欄に作業ディレクトリを指定することも重要です。指定がない場合、予期しないディレクトリでスクリプトが実行される可能性があります。
出典: Microsoft Learn
PowerShellスクリプト実行時の高度なオプション:引数、非表示、管理者権限
スクリプトへの引数渡しと環境変数
PowerShellスクリプトをタスクスケジューラで実行する際、外部から動的に値を与えたい場合は、引数渡しが非常に有効です。
前述の通り、「引数の追加」フィールドで、スクリプトファイルパスの後に、スペース区切りで引数を記述します。
例えば、-File "C:\Scripts\ReportGenerator.ps1" -OutputPath "D:\Reports" -DateFilter "2025-01-01" のように指定できます。
スクリプト側では、param()ブロックを使ってこれらの引数を受け取ります。
param(
[string]$OutputPath,
[string]$DateFilter
)
# スクリプト内で $OutputPath や $DateFilter を使用
これにより、同じスクリプトを異なるパラメーターで実行し、汎用性を高めることができます。
さらに、タスクスケジューラの「環境」タブ(「設定」タブからアクセスできる場合があります)や、タスク設定XMLファイルを直接編集することで、タスク固有の環境変数を設定することも可能です。
これらの環境変数は、スクリプト内で$env:VariableNameとして参照できます。
非表示実行とログ出力の重要性
多くの自動化スクリプトは、ユーザーインターフェースを必要とせず、バックグラウンドで静かに実行されることが望ましいです。
PowerShellを非表示で実行するには、「引数の追加」の冒頭に「-WindowStyle Hidden」を追加します。
例えば、powershell.exe -WindowStyle Hidden -NoProfile -ExecutionPolicy Bypass -File "C:\Scripts\BackgroundTask.ps1" のように指定します。
非表示実行はシステムの負荷を軽減し、ユーザーの邪魔にならないという利点がありますが、同時に大きな注意点があります。
それは、スクリプト実行中に発生したエラーやメッセージが画面に表示されないため、問題が発生しても気づきにくいという点です。
このため、非表示で実行するPowerShellスクリプトには、処理の開始・終了、成功・失敗、エラー内容などを詳細に記録する「ログ出力機能」を組み込むことが不可欠です。ログファイルは、トラブルシューティングの際の唯一の手がかりとなるため、その設計と実装には細心の注意を払いましょう。
管理者権限での実行とセキュリティ考慮
PowerShellスクリプトの中には、システム設定の変更、特定のシステムディレクトリへのファイル書き込み、サービス操作など、管理者権限が必要な操作を行うものがあります。
タスクスケジューラで管理者権限でスクリプトを実行させるには、「全般」タブの「セキュリティオプション」で「最高の特権で実行する」チェックボックスをオンにします。
この設定を行うと、UAC(ユーザーアカウント制御)の昇格プロンプトなしに、指定したユーザーアカウントの管理者権限でタスクが実行されます。
しかし、管理者権限での実行は、システムのセキュリティにとって重要な意味を持ちます。
悪意のある、あるいは不注意なスクリプトが管理者権限で実行されると、システムに深刻な損害を与える可能性があります。
そのため、管理者権限での実行は本当に必要な場合にのみ使用し、スクリプトの内容は十分に精査し、信頼できるソースからのみ取得するようにしてください。可能であれば、特定のタスクに必要な最小限の権限を持つ専用のサービスアカウントを作成し、それを使用することを検討しましょう。これはセキュリティのベストプラクティスの一つです。
出典: Microsoft Learn
タスクスケジューラのPowerShellタスクを効率的に登録・管理する方法
タスク登録の確認と変更
タスクスケジューラで登録したPowerShellタスクは、定期的な見直しと必要に応じた変更が不可欠です。
登録済みのタスクは、タスクスケジューラのライブラリツリーを展開し、適切なフォルダを選択することで一覧表示されます。
タスク名をクリックすると、そのタスクの概要が下部のペインに表示され、詳細なプロパティはタスクをダブルクリックするか、右クリックメニューから「プロパティ」を選択することで開けます。
プロパティウィンドウでは、トリガー、アクション、条件、設定などの各タブで、タスクの実行条件や動作を細かく調整できます。
例えば、スクリプトのパスが変更になった場合や、実行頻度を調整したい場合、または特定のエラーが発生した場合の再実行設定を見直す際などに、このプロパティウィンドウから簡単に変更を行うことができます。
また、一時的にタスクの実行を停止したい場合は、右クリックメニューから「無効」を選択することで、タスクを削除せずに実行を中断することが可能です。
タスク実行履歴とエラーコードの活用
タスクスケジューラがタスクを実行した際の履歴は、トラブルシューティングや運用の健全性チェックにおいて非常に貴重な情報源となります。
タスクのプロパティを開き、「履歴」タブをクリックすると、過去の実行日時、実行結果(成功/失敗)、終了コード、そしてエラーメッセージなどが一覧表示されます。
- 成功 (0x0): タスクが正常に完了したことを示します。
- エラー (0x1): 不明なエラーでタスクが終了したことを示します。スクリプトがエラーを発生させて終了した場合などが該当します。
- タスクが見つかりません (0x2): 指定されたタスクが見つからない場合に発生します。
これらの終了コードは、PowerShellスクリプト内でexitステートメントを使って明示的に設定することも可能です(例: exit 0で成功、exit 1で失敗)。
より詳細なログが必要な場合は、Windowsのイベントビューア(「アプリケーション」および「システム」ログ)を参照することで、タスクスケジューラ自体やPowerShellプロセスのイベントに関する情報を得られることがあります。
実行履歴とエラーコードを定期的に確認し、異常があれば早期に発見・対処することが、安定した自動化運用には不可欠です。
エクスポート/インポートによるタスクの管理
複数のシステムで同じPowerShellタスクを設定したい場合や、タスク設定のバックアップを取りたい場合に便利なのが、タスクのエクスポートとインポート機能です。
タスクスケジューラGUIから、対象のタスクを右クリックし、「エクスポート」を選択すると、タスクの設定がXMLファイルとして保存されます。
このXMLファイルを他のコンピューターにコピーし、タスクスケジューラで「タスクのインポート」を選択することで、簡単に同じ設定のタスクを登録できます。
より高度な管理を求める場合は、コマンドラインツールのschtasks.exeやPowerShellのスケジュールタスク関連コマンドレットを活用しましょう。
例えば、
schtasks /create /tn "MyPowerShellTask" /tr "powershell.exe -File C:\Scripts\MyScript.ps1" /sc daily /st 09:00でタスクを新規作成Get-ScheduledTask | Where-Object {$_.TaskName -like "My*"} | Disable-ScheduledTaskで特定のタスクを無効化Register-ScheduledTask -TaskName "MyNewTask" -Action (New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-File C:\Scripts\NewScript.ps1") -Trigger (New-ScheduledTaskTrigger -Daily -At "9am")でPowerShellからタスクを登録
これらのツールやコマンドレットを使いこなすことで、タスクの登録、変更、削除、クエリといった一連の管理作業を自動化し、効率を大幅に向上させることができます。
出典: Microsoft Learn
PowerShellスクリプトがタスクスケジューラで実行されない時のトラブルシューティング
実行ログと履歴の徹底確認
タスクスケジューラに登録したPowerShellスクリプトが期待通りに実行されない場合、まずは「なぜ実行されなかったのか」のヒントを探すことが重要です。
最初に確認すべきは、タスクスケジューラ自体の「履歴」タブです。
ここで、タスクがトリガーされたか、プロセスが開始されたか、どのような終了コードで完了したかを確認できます。
例えば、「実行に失敗しました」というメッセージと共にエラーコードが表示されている場合があります。
次に、Windowsのイベントログも重要な情報源です。「イベントビューア」を開き、「Windowsログ」内の「アプリケーション」と「システム」ログ、そして「アプリケーションとサービスログ」内の「Microsoft」→「Windows」→「TaskScheduler」→「Operational」ログを詳細に確認してください。
PowerShellスクリプト自体にログ出力機能が組み込まれている場合は、そのログファイルも忘れずに確認しましょう。
これらのログを詳細に分析することで、タスクスケジューラがスクリプトを起動できなかったのか、それともスクリプトが起動された後に内部でエラーが発生したのかを特定する手がかりが得られます。
パス、権限、PowerShellバージョンの検証
ログで特定のエラーが確認できない場合でも、いくつかの基本的な設定ミスが原因であることがよくあります。
以下の点を順番に検証してください。
- パスの正確性:
- タスクの「アクション」で指定されている
powershell.exe(またはpwsh.exe)へのパス、およびスクリプトファイル(例:C:\Scripts\MyScript.ps1)へのパスが絶対パスで正しく指定されているか。 - 「開始(オプション)」の作業ディレクトリが正しく設定されているか。スクリプトが相対パスで他のファイルを参照している場合、作業ディレクトリが重要になります。
- タスクの「アクション」で指定されている
- 実行アカウントの権限:
- タスクの「セキュリティオプション」で指定された実行アカウントが、スクリプトがアクセスしようとするファイル、フォルダ、レジストリ、ネットワーク共有などに対する適切な読み書き権限を持っているか。特に管理者権限が必要な操作が含まれていないかを確認します。
- PowerShellのバージョンとExecutionPolicy:
- スクリプトが特定のPowerShellバージョン(Windows PowerShell 5.1かPowerShell Core 7+か)に依存していないか。
- PowerShellのExecutionPolicyが、スクリプトの実行を許可しているか。通常は
-ExecutionPolicy Bypassを引数に含めることで解決できますが、環境によってはグループポリシーなどで厳しく制限されている場合があります。
環境要因とセキュリティ設定の見直し
上記を確認しても問題が解決しない場合は、より広範な環境要因やセキュリティ設定が影響している可能性があります。
- ネットワーク接続: スクリプトがネットワークドライブや共有フォルダにアクセスする必要がある場合、タスク実行時にネットワーク接続が確立されているか確認します。特に「ユーザーがログオンしているかどうかにかかわらず実行する」設定の場合、ユーザープロファイルが完全に読み込まれていない環境でネットワーク接続が利用できないことがあります。
- セキュリティソフトウェア: ファイアウォール、アンチウイルスソフト、エンドポイント保護ソリューションなどが、PowerShellプロセスの実行やスクリプトがアクセスしようとするリソースをブロックしていないか確認します。一時的に無効にしてテストするのも一つの方法ですが、本番環境では注意が必要です。
- UAC (ユーザーアカウント制御): タスクが管理者権限で実行されない場合、UACが原因で特定の操作がブロックされることがあります。この場合、「最高の特権で実行する」オプションをオンにする必要があります。
- ユーザープロファイル: 「ユーザーがログオンしているかどうかにかかわらず実行する」設定では、ユーザープロファイルが完全にロードされないことがあります。これに依存する設定(例:
$HOMEや$PROFILE)は動作が異なる可能性があります。
これらの複雑な問題は、再現テスト(例: 管理者として手動でスクリプトを実行)や、一時的に詳細なログを仕込むことで、原因の特定が容易になります。
出典: Microsoft Learn
安定したPowerShellタスク運用のためのベストプラクティスとヒント
堅牢なスクリプト設計とエラーハンドリング
タスクスケジューラで実行されるPowerShellスクリプトは、想定外の状況でも安定して動作するよう、堅牢に設計されている必要があります。
- エラーハンドリング: スクリプト全体、特に重要な処理部分には
try-catch-finallyブロックを適切に実装し、エラーが発生した場合でもスクリプトが停止せず、適切に処理を終了させるようにします。 - ログ出力: スクリプトの開始、主要な処理ステップ、成功、失敗、エラーの詳細を記録するログ機能を必ず組み込みます。ログには、日時、メッセージタイプ(情報、警告、エラー)、具体的な内容を含めることで、後からの解析が容易になります。
- 終了コード: スクリプトの最後に
exit 0(成功)やexit 1(失敗)などの終了コードを明示的に設定します。これにより、タスクスケジューラの履歴からスクリプトの成否を簡単に判断できるようになります。 - 冪等性: 同じスクリプトが複数回実行されても、システムの状態が予期せぬ形で変化しない「冪等性」を考慮した設計を心がけましょう。
自動化の要であるスクリプト自体が不安定では、自動化の恩恵は得られません。エラーを「検出」し、「記録」し、「適切に終了」する仕組みは、トラブルシューティングの時間を大幅に削減します。
実行アカウントと権限の最小化
セキュリティは、自動化タスクを運用する上で最も重要な考慮事項の一つです。
タスクを実行するアカウントには、そのタスクを完了するために必要最小限の権限のみを与えるべきです。
- 専用アカウントの作成: 可能であれば、特定の自動化タスク専用のサービスアカウントを作成し、そのアカウントにのみ必要な権限を付与します。管理者アカウントを多用することは、セキュリティリスクを高めます。
- パスワード管理: 実行アカウントのパスワードは定期的に更新し、安全に管理してください。ハードコードされたパスワードは避け、Windowsの資格情報マネージャーやPowerShellの秘密情報管理モジュール(SecretManagement)などを活用して安全に扱います。
- 管理者権限の制限: 「最高の特権で実行する」オプションは、本当に必要な場合に限定し、そのリスクを理解した上で使用してください。ほとんどの日常的なタスクは、一般的なユーザー権限で実行可能です。
「最小権限の原則」を遵守することは、万が一スクリプトに脆弱性があった場合や、誤って悪意のあるスクリプトが実行された場合の被害を最小限に抑えることにつながります。
定期的なレビューとテストの実施
システム環境は常に変化するため、一度設定したPowerShellタスクも「設定しっぱなし」ではいけません。
安定した運用を維持するためには、定期的なレビューとテストが不可欠です。
- 定期レビュー:
半年に一度など、定期的に登録されているタスクの一覧を見直し、以下の点を確認します。
- タスクの目的はまだ有効か? 不要なタスクは削除または無効化する。
- スクリプトのパス、引数、実行アカウントの権限は現状に合致しているか?
- ログファイルは適切に出力され、エラーは発生していないか?
- 変更前のテスト:
OSのアップデート、PowerShellのバージョンアップ、ネットワーク構成の変更など、環境に大きな変更を加える前には、必ずテスト環境でPowerShellタスクが正常に動作するかどうかを確認します。
- スクリプト自体に変更を加える場合も、本番環境に適用する前に十分なテストを実施してください。
- タスクのエクスポート/インポート機能を利用して、設定をバックアップしてから変更を加えることを推奨します。
これらの取り組みにより、予期せぬトラブルを未然に防ぎ、自動化された業務プロセスを常に健全な状態に保つことができます。
出典: Microsoft Learn
AIでPowerShell自動実行をさらにスマートに:あなたの秘書がタスクを整理・自動化
PowerShellスクリプトの自動実行は、日々の業務効率を劇的に向上させる強力な手段です。しかし、「どのタスクを自動化すべきか」「スクリプトをどう配置すれば最も効果的か」といった判断に迷うこともあるでしょう。そこで、AIをあなたの優秀なアシスタントとして活用し、これらの思考プロセスを支援してもらうことができます。AIは、与えられた情報を基に、タスクの優先順位付けや、設定のポイントを整理し、まるで経験豊富な秘書のように、あなたの業務自動化の道筋を照らしてくれるのです。
【思考の整理】記事のテーマをAIで整理・優先順位付けするコツ
タスクスケジューラとPowerShellによる自動実行は、その可能性が広いため、どこから手をつければ良いか迷うこともあります。AIに「この記事で紹介されている自動実行のメリットを、業務改善の観点から優先順位をつけてリストアップしてください」と依頼することで、あなた自身の業務における重要度を客観的に評価する手助けとなります。AIは、情報の中から「時間短縮」「人的ミスの削減」「定型業務の負担軽減」といったキーワードを抽出し、あなたの状況に合わせた優先順位付けのたたき台を提供してくれるでしょう。
さらに、「PowerShellスクリプトの自動実行で、特に注意すべき設定項目は何ですか?」と尋ねることで、AIは「管理者権限での実行」「引数の渡し方」「非表示実行」といった、記事で解説されている重要ポイントを、その必要性とともに整理してくれます。これにより、あなたが「何を理解し、どこに注意を払うべきか」が明確になり、効率的な学習と設定が可能になります。
【実践の下書き】そのまま使えるプロンプト例( を使用)
AIに具体的な指示を出すことで、あなたの意図を正確に反映した「作業のたたき台」を生成してもらうことができます。例えば、以下のようなプロンプトは、AIが記事の内容を理解し、PowerShell自動実行の基本的な設定を助けてくれるように促します。この指示を出すことで、AIは記事のサマリーを読み込み、タスクスケジューラとPowerShellの連携の重要性、そしてどのような設定項目が解説されているかを把握し、それらを網羅した説明を生成しようとします。
「タスクスケジューラでPowerShellスクリプトを自動実行する際に、最低限確認すべき設定項目を、その理由とともに箇条書きで教えてください。特に、引数の渡し方と管理者権限での実行について、具体的な設定例を交えながら説明してください。」
このように具体的な質問を投げかけることで、AIは単なる情報提供にとどまらず、あなたの「知りたいこと」にフォーカスした回答を生成します。生成された内容は、あなた自身の知識を補強し、PowerShell自動実行の設定作業をスムーズに進めるための貴重なガイドとなるでしょう。ただし、AIの生成物はあくまで「下書き」であり、ご自身の環境やスクリプトに合わせて、必ず内容を吟味・修正してください。
【品質の担保】AIの限界を伝え、人がどう微調整すべきかの知恵
AIは、与えられた情報に基づいて回答を生成しますが、あなたの具体的な業務環境や、実行したいPowerShellスクリプトの細かな挙動までは理解できません。そのため、AIが生成した設定方法やトラブルシューティングのヒントは、あくまで「可能性のある選択肢」として捉えることが重要です。例えば、「管理者権限での実行」に関するAIの助言は、一般的なケースには当てはまりますが、特定のサービスアカウントの権限設定などは、AIが詳細を把握するのは難しいでしょう。
AIの出力をそのまま適用するのではなく、必ずご自身の環境で実際にテストを実行し、期待通りの動作をするかを確認してください。また、AIが提示したトラブルシューティング手順は、あくまで一般的な解決策です。予期せぬエラーが発生した場合は、AIの回答を参考にしつつも、PowerShellの実行ログやタスクスケジューラの履歴を詳細に確認し、ご自身の判断で原因を特定・修正していくことが、確実な自動化運用の鍵となります。AIは強力なアシスタントですが、最終的な判断と実行は、あなたの手で行うことが、安定した運用の秘訣です。
まとめ
よくある質問
Q: タスクスケジューラでPowerShellスクリプトを実行する際の基本的な「プログラム/スクリプト」と「引数」の設定方法を教えてください。
A: 「プログラム/スクリプト」には `powershell.exe` を指定し、「引数の追加」には `-ExecutionPolicy Bypass -File "C:\path\to\your_script.ps1"` のように記述します。`Bypass` は実行ポリシーを一時的に緩和し、スクリプトの実行を許可します。
Q: タスクスケジューラからPowerShellスクリプトを管理者権限で実行するには、どのような設定が必要ですか?
A: タスクのプロパティを開き、「全般」タブ内にある「最上位の特権で実行する」にチェックを入れます。また、タスクを実行するユーザーアカウントが適切な管理者権限を持っていることを確認してください。
Q: PowerShellスクリプトがタスクスケジューラで実行されても、ウィンドウが表示されないようにするにはどうすれば良いですか?
A: 最も簡単な方法は、引数に `-WindowStyle Hidden` を追加することです。例えば、`powershell.exe -WindowStyle Hidden -File "C:\path\to\your_script.ps1"` と指定します。
Q: タスクスケジューラに登録したPowerShellスクリプトが実行されない場合、どのような原因が考えられますか?
A: 一般的な原因としては、スクリプトのパスの誤り、実行ポリシーの制限、タスク実行ユーザーの権限不足、ログオン状態の不一致、スクリプト内のエラー、またはタスク履歴やイベントログに記録されたエラーメッセージの確認が必要です。
Q: PowerShellを使って、タスクスケジューラに登録されたタスクをエクスポートすることはできますか?
A: はい、可能です。`Export-ScheduledTask -TaskName "タスク名" -Path "C:\path\to\export.xml"` コマンドを使用することで、特定のタスクをXMLファイルとしてエクスポートできます。全てのタスクをエクスポートする場合は、`Get-ScheduledTask | Export-Clixml -Path "C:\tasks_all.xml"` が便利です。