Skip to content

Windows PC自動セットアップワークフロー - PowerShellとJSONによる完全自動化ソリューション

License

Notifications You must be signed in to change notification settings

maru0014/windows-kitting-workflow

Repository files navigation

Windows Kitting Workflow

概要

Windows Kitting Workflowは、Windows 11 PCを完全自動でセットアップするためのワークフローシステムです。PowerShellとJSON設定ファイルを使用して、アプリケーションのインストール、レジストリ設定、システム最適化を自動実行します。

主な特徴

  • 完全自動化: ユーザー介入なしでPCセットアップを実行
  • JSON設定: 実行順序と設定をJSONファイルで簡単管理
  • winget統合: Microsoft公式パッケージマネージャーによる安全なアプリ管理
  • レジストリ最適化: セキュリティ・パフォーマンス向上のための設定自動適用
  • エラー通知: Slack/Teams連携によるリアルタイム通知
  • 自動継続: 再起動後も自動的にセットアップを継続
  • 安全なバックアップ: レジストリ変更前の自動バックアップ

デモ動画

実際の動作を確認するには、以下のデモ動画をご覧ください:

Windows Kitting Workflow デモ動画

🎬 YouTube でデモ動画を見る

ファイル構成

windows-kitting-workflow/
├── README.md                     # このファイル
├── LICENSE
├── plan.md
├── main.bat                      # メインエントリーポイント
├── unblock-files.bat             # セキュリティブロック一括解除
├── workflow-editor.bat           # WorkflowEditor 起動バッチ
├── MainWorkflow.ps1              # メインワークフローエンジン
├── WorkflowEditor.ps1            # ワークフロー設定GUIエディター
├── AutoLogin.ps1                 # 自動ログイン設定管理
├── TaskScheduler.ps1             # タスクスケジューラ管理
├── config/                       # 設定ファイル
│   ├── workflow.json             # ワークフロー設定
│   ├── applications.json         # アプリケーション設定
│   ├── notifications.json        # 通知設定
│   ├── local_user.json           # ローカルユーザー設定
│   ├── machine_list.csv          # マシンリスト(オプション)
│   ├── start_pins.ppkg           # スタートメニュー固定構成
│   ├── TaskbarLayoutModification.xml # タスクバー配置
│   ├── wi-fi.xml                 # Wi‑Fi設定XML
│   ├── desktop/                  # デスクトップファイル
│   │   ├── public/               # パブリック用
│   │   └── user/                 # ユーザー用
│   ├── registry/                 # レジストリ設定ファイル
│   │   ├── 01_explorer_settings.*
│   │   ├── 02_performance_settings.*
│   │   ├── ...
│   └── office/                   # Office 導入ファイル
│       ├── setup.exe
│       ├── configuration-Office2021.xml
│       ├── configuration-Office365-x64.xml
│       └── Office/
│           └── Data/
│               └── ...
├── scripts/                      # スクリプトファイル
│   ├── Unblock-AllFiles.ps1      # セキュリティブロック一括解除
│   ├── Common-LogFunctions.ps1   # 共通ログ関数
│   ├── Common-NotificationFunctions.ps1  # 共通通知関数
│   ├── Common-WorkflowHelpers.ps1        # 共通ワークフロー補助
│   ├── setup/                    # セットアップスクリプト
│   │   ├── initialize.ps1
│   │   ├── install-winget.ps1
│   │   ├── install-basic-apps.ps1
│   │   ├── uninstall-apps.ps1
│   │   ├── install-office.ps1
│   │   ├── install-ppkg.ps1
│   │   ├── apply-taskbar-layout.ps1
│   │   ├── import-registry.ps1
│   │   ├── disable-startup-apps.ps1
│   │   ├── deploy-desktop-files.ps1
│   │   ├── setup-wifi.ps1
│   │   ├── setup-wifi.bat
│   │   ├── create-user.ps1
│   │   ├── remove-user.ps1
│   │   ├── rename-computer.ps1
│   │   ├── setup-bitlocker.ps1
│   │   └── windows-update.ps1
│   └── cleanup/                  # クリーンアップスクリプト
│       └── cleanup.ps1
├── docs/                         # ドキュメント
│   ├── README.md
│   ├── TABLE_OF_CONTENTS.md
│   ├── VALIDATION_NOTES.md
│   ├── Testing-Guide.md
│   ├── Troubleshooting.md
│   ├── Registry-Configuration.md
│   ├── Application-Management.md
│   ├── Customization-Guide.md
│   ├── Windows-Update-Guide.md
│   ├── Wi-Fi-Configuration-Guide.md
│   ├── File-Security-Unblock-Guide.md
│   ├── Slack-Thread-Guide.md
│   ├── Teams-Notification-V2-Guide.md
│   ├── WorkflowRoot-Improvement-Guide.md
│   ├── AutoLogin-README.md
│   ├── Office-Installation-Guide.md
│   ├── install_office_script.md
│   ├── ppkg_installation_guide.md
│   ├── taskbar_layout_guide.md
│   ├── copy_path_with_network_guide.md
│   ├── disable_startup_apps_guide.md
│   ├── create-user-guide.md
│   └── remove_user_guide.md
├── tests/                        # テスト・診断ツール
│   ├── README.md
│   ├── Run-AllTests.ps1
│   ├── Test-JsonConfiguration.ps1
│   ├── Test-ProjectStructure.ps1
│   ├── Test-TeamsNotificationV2.ps1
│   ├── run-tests.bat
│   └── run-tests-advanced.bat
└── 自動生成フォルダ(実行時作成)
    ├── backup/                  # バックアップファイル
    ├── status/                  # ステータス管理
    └── logs/                    # ログファイル

クイックスタート

前提条件

  • Windows 11 または Windows 10 1809以降
  • PowerShell 5.1以上
  • インターネット接続

⚠️ 重要: セキュリティブロック解除

インターネットからダウンロードしたファイルには、Windowsによってセキュリティブロックが設定されます。このワークフローを実行する前に、以下のコマンドでセキュリティブロックを解除してください:

# 最も簡単な方法(バッチファイル実行)
.\unblock-files.bat

# または PowerShell で直接実行
.\scripts\Unblock-AllFiles.ps1 -Recurse

詳細な手順はファイルセキュリティブロック解除ガイドを参照してください。

基本的な使用方法

  1. フォルダをCドライブに配置

    C:\windows-kitting-workflow\
    
  2. main.batを右クリックして「管理者として実行」を選択

以上。

セットアップが開始されると、自動ログインとタスクスケジューラが設定され、PC再起動後も自動的に処理が継続されます。

インストールされる内容

基本アプリケーション

  • 開発ツール: PowerShell 7, Git, Visual Studio Code
  • ユーティリティ: 7-Zip, PowerToys
  • 生産性: Google 日本語入力, Adobe Acrobat Reader
  • ブラウザ: Google Chrome, Mozilla Firefox
  • メディア: VLC Media Player
  • コミュニケーション: Microsoft Teams, Zoom

システム最適化

  • エクスプローラー設定: ファイル拡張子表示でセキュリティ向上
  • パフォーマンス設定: 応答性向上、視覚効果最適化
  • プライバシー設定: 不要な情報収集・広告配信の抑制
  • BitLocker暗号化: TPMベースのシステムドライブ暗号化
  • タスクバー調整: 不要なボタンの非表示

詳細はレジストリ設定ガイドを参照してください。

カスタマイズ

WorkflowEditor GUI

WorkflowEditor.ps1を使用して、視覚的にワークフロー設定を編集できます。

# WorkflowEditorを起動(推奨)
workflow-editor.bat

# カスタム設定ファイルを指定
workflow-editor.bat "path\to\workflow.json"

または、直接PowerShellを使用:

# WorkflowEditorを起動
.\WorkflowEditor.ps1

# カスタム設定ファイルを指定
.\WorkflowEditor.ps1 -ConfigPath "path\to\workflow.json"

image

image

WorkflowEditorでは以下の操作が可能です:

  • ワークフローの基本設定(名前、バージョン、説明など)
  • ステップの詳細設定(スクリプト、タイプ、実行オプション)
  • ステップの実行順序変更(上下移動)
  • ステップのJSONを直接編集
  • 設定の保存・名前を付けて保存

詳細はWorkflowEditorガイドを参照してください。

アプリケーションの追加・変更

config/applications.jsonを編集してインストールアプリをカスタマイズできます。 詳細はアプリケーション管理ガイドを参照してください。

ワークフローの変更

config/workflow.jsonを編集して実行順序や処理内容をカスタマイズできます。

Windows Updateの設定

Windows Updateステップでは以下のカスタマイズが可能です:

  • 特定のKB番号のアップデートのみインストール
  • 特定のアップデートを除外してインストール
  • Microsoft Updateサービスの含有/除外
  • 自動再起動の有効/無効

詳細はカスタマイズガイドを参照してください。

通知設定

Slack/Teams Webhookを設定することで、進捗状況をリアルタイムで確認できます。 config/notifications.jsonで設定してください。

Slackスレッド機能

PCごとにSlackスレッドを分けて通知することが可能です。複数PCの同時セットアップでも各PCの進捗を個別に追跡できます。 詳細はSlackスレッドガイドを参照してください。

トラブルシューティング

セキュリティエラーが発生する場合

PowerShell実行ポリシーエラーや「ファイルがブロックされています」エラーが発生した場合:

# セキュリティブロック解除
.\unblock-files.bat

# または実行ポリシーを一時的に変更
powershell -ExecutionPolicy Bypass -File "main.bat"

その他の問題

問題が発生した場合は以下の診断ツールを使用してください:

# 包括的な健全性チェック
.\tests\Run-AllTests.ps1 -Verbose

# JSON設定ファイルの検証・修正
.\tests\Test-JsonConfiguration.ps1 -Fix

# プロジェクト構造の詳細診断
.\tests\Test-ProjectStructure.ps1 -Verbose

よくある問題と解決方法はトラブルシューティングガイドを参照してください。

ドキュメント

📚 基本ガイド(ユーザー向け)

🔧 技術実装詳細(開発者向け)

ライセンス

このプロジェクトはMITライセンスの下で公開されています。

注意事項

このツールは管理者権限で実行され、システムに重要な変更を加える可能性があります。本番環境で使用する前に、テスト環境で十分に検証してください。

About

Windows PC自動セットアップワークフロー - PowerShellとJSONによる完全自動化ソリューション

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •