An open API service indexing awesome lists of open source software.

https://github.com/maru0014/windows-kitting-workflow

Windows PC自動セットアップワークフロー - PowerShellとJSONによる完全自動化ソリューション
https://github.com/maru0014/windows-kitting-workflow

automation deployment it-automation kitting powershell registry system-administration windows windows-10 windows-11 winget workflow

Last synced: about 2 months ago
JSON representation

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

Awesome Lists containing this project

README

          

# Windows Kitting Workflow

## 概要

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

### 主な特徴

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

## デモ動画

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

[![Windows Kitting Workflow デモ動画](https://github.com/user-attachments/assets/2ae9e24f-da1b-41f3-8d5a-22f2a968e6b4)](https://youtu.be/JRqgSvs1WTQ?si=_2jrspqjiH4APwLO)

[🎬 YouTube でデモ動画を見る](https://youtu.be/JRqgSvs1WTQ)

## ファイル構成

```
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によってセキュリティブロックが設定されます。このワークフローを実行する前に、以下のコマンドでセキュリティブロックを解除してください:

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

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

詳細な手順は[ファイルセキュリティブロック解除ガイド](docs/File-Security-Unblock-Guide.md)を参照してください。

### 基本的な使用方法

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ベースのシステムドライブ暗号化
- **タスクバー調整**: 不要なボタンの非表示

詳細は[レジストリ設定ガイド](docs/Registry-Configuration.md)を参照してください。

## カスタマイズ

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

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

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

または、直接PowerShellを使用:
```powershell
# WorkflowEditorを起動
.\WorkflowEditor.ps1

# カスタム設定ファイルを指定
.\WorkflowEditor.ps1 -ConfigPath "path\to\workflow.json"
```
![image](https://github.com/user-attachments/assets/23f9a98f-3f0f-406c-ad1a-10475c7911c4)

![image](https://github.com/user-attachments/assets/1651b96a-61c8-4ac6-acea-2a00501b5e63)

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

詳細は[WorkflowEditorガイド](docs/WorkflowEditor-Guide.md)を参照してください。

### アプリケーションの追加・変更
`config/applications.json`を編集してインストールアプリをカスタマイズできます。
詳細は[アプリケーション管理ガイド](docs/Application-Management.md)を参照してください。

### ワークフローの変更
`config/workflow.json`を編集して実行順序や処理内容をカスタマイズできます。

#### Windows Updateの設定
Windows Updateステップでは以下のカスタマイズが可能です:
- 特定のKB番号のアップデートのみインストール
- 特定のアップデートを除外してインストール
- Microsoft Updateサービスの含有/除外
- 自動再起動の有効/無効

詳細は[カスタマイズガイド](docs/Customization-Guide.md)を参照してください。

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

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

## トラブルシューティング

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

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

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

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

### その他の問題

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

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

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

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

よくある問題と解決方法は[トラブルシューティングガイド](docs/Troubleshooting.md)を参照してください。

## ドキュメント

### 📚 基本ガイド(ユーザー向け)
- **[ドキュメントREADME](docs/README.md)**: 全ドキュメントの概要とナビゲーション
- **[ファイルセキュリティブロック解除ガイド](docs/File-Security-Unblock-Guide.md)**: ダウンロードファイルのブロック解除方法
- **[レジストリ設定ガイド](docs/Registry-Configuration.md)**: システム最適化設定の詳細
- **[アプリケーション管理ガイド](docs/Application-Management.md)**: アプリインストールの管理方法
- **[BitLocker設定ガイド](docs/BitLocker-Configuration-Guide.md)**: BitLocker暗号化の自動設定
- **[カスタマイズガイド](docs/Customization-Guide.md)**: ワークフローのカスタマイズ方法
- **[Windows Updateガイド](docs/Windows-Update-Guide.md)**: Windows Update設定の詳細
- **[Wi-Fi設定ガイド](docs/Wi-Fi-Configuration-Guide.md)**: Wi-Fi自動設定機能の詳細
- **[Slackスレッドガイド](docs/Slack-Thread-Guide.md)**: Slackスレッド機能の使用方法
- **[トラブルシューティングガイド](docs/Troubleshooting.md)**: 問題解決方法
- **[テスト・診断ガイド](docs/Testing-Guide.md)**: テストツールの使用方法
- **[自動ログインREADME](docs/AutoLogin-README.md)**: 自動ログイン機能の詳細

### 🔧 技術実装詳細(開発者向け)
- **[共通通知ライブラリ](docs/Common-Notification-Library.md)**: 通知機能の共通化とアーキテクチャ
- **[Teams通知新スレッド化方式ガイド](docs/Teams-Notification-V2-Guide.md)**: 改良版フロー/真のスレッド化
- **[WorkflowRoot改善ガイド](docs/WorkflowRoot-Improvement-Guide.md)**: 共通処理改善の実装詳細

## ライセンス

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

## 注意事項

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