Zenn Dev 8chikuwa3 Articles 86496fe4979b3c
Office 2024 LTSC バイナリ自動取得+定期処理スクリプト
- URL: https://zenn.dev/8chikuwa3/articles/86496fe4979b3c
- 日付: 2026-06-26
- Tier: Tier 3
- 要旨: Office 2024 LTSCのバイナリを毎月パッチチューズデー翌水曜日に自動ダウンロードし、古いビルドを自動パージするPowerShellスクリプトをタスクスケジューラと組み合わせた構成を紹介している。スクリプト内部で「今日が第2火曜の翌水曜か」を判定することで毎日トリガーしても無駄なダウンロードを防ぎ、version型キャストによる安全な世代管理(最新2世代保持)を実現している。SYSTEMアカウントで動作させるためWinHTTPへのプロキシ設定が必要な点も示している。
詳細
設計上の工夫点:
- 業務時間内の数GB通信を避けるためトリガーを「毎日深夜」に設定し、スクリプト内で「第2火曜の翌水曜のみ実行」と判定してスキップ制御
- ODTが生成するビルドフォルダ(16.0.xxxxx.xxxx形式)を [version]型にキャストして降順ソートし、最新2世代のみ保持して古いバージョンとCABファイルを自動削除
- ユーザー依存のタスク(パスワード変更で止まるリスク)を避けるため、SYSTEMアカウントで実行
- SYSTEMアカウントはGUIのプロキシ設定を持たないため、事前に
netsh winhttp import proxy source=ieでWinHTTPにプロキシを設定する必要がある
スクリプトの主な処理(4ステップ):
- 今月の第2火曜日を算出し、翌日(水曜)がターゲット日かどうかを判定
- 一致した場合のみ ODT(setup.exe /download config.xml)を実行してダウンロード
- 終了コード0(成功)の場合のみパージ処理に進む
- Data フォルダ内の 16.0.* ディレクトリを [version]型でソートし、3世代目以降を Remove-Item で完全削除(付随CABファイルも削除)
タスクスケジューラの補足: デフォルトの priority 7(BELOW_NORMAL)だとダウンロードが遅い場合があり、タスクXMLをエクスポートして priority を 6(NORMAL)に変更すると改善できる