Files
windows-unattend/steps
Timmy 935cddbbf2 新增 steps/ 拆解版本(每段獨立 .bat 雙擊跑)+ Run-Setup.bat;端對端驗證後修 11 處 bug
steps/ 把 Setup.ps1 拆成 18 個獨立步驟(00-17),每段:
- _common.ps1 提供 Log/Section/Set-RegValue/Wait-Network helper
- 各段一個 .ps1 + 同名 .bat(自動 UAC 提權)
- _admin-shell.bat 開一個已提權 cmd,從那裡跑各 .bat 不再被 UAC 問
- RUN-ALL.bat 依序跑 00..17
- _template.bat 全部 .bat 共用樣板
- README.txt 用法說明

從 macOS WinRM 端對端跑過所有 18 段、發現並修:
- 02-rdp-enable-3389:'Remote Desktop' display group 在某些 Win11 SKU 不存在,
  改顯式 New-NetFirewallRule + Restart-Service TermService
- 04-winrm-enable:開頭加 Set-NetConnectionProfile -NetworkCategory Private fallback,
  避免 winrm quickconfig 在 Public profile 拒絕啟用
- 11-kms-activate:原本 'successful|成功' 正則在 Big5 codepage 下 mojibake 出 '{x,y}',
  改用 SoftwareLicensingProduct.LicenseStatus -eq 1 WMI 判斷
- 12-winget-install-chrome:加 --source winget,避開 msstore 憑證錯誤造成的歧義
- 13-remove-windows-ai:拿掉 -AllOptions,顯式 10 個 option 排除 UpdateCleanupCheck
  (DISM Cleanup-Image + sfc + MessageBox 在 Session-0 default Yes 觸發 Restart-Computer)
- 14-win11debloat:加 -Sysprep(寫到 Default profile 不撞 HKCU 鎖),
  從 config 移除 DisableSearchHistory/DisableSearchHighlights/HideSearchTb
  (它們的 reg.exe import 會被「存取被拒」擋住)
- 07-apply-ui-ime-default-profile:補上 IsDeviceSearchHistoryEnabled / IsDynamicSearchBoxEnabled
  替代上面從 Win11Debloat 拔掉的兩項
- 新增 00-network-private 步驟把所有 NetConnectionProfile 改 Private
- 全部 19 個 .ps1 加 UTF-8 BOM,避免 CHT Windows PS5.1 fallback ANSI 讀中文 mojibake
- 全部 .bat REM 註解改 ASCII,根除「'券蠶setup.log' 不是內部命令」那種亂碼

Run-Setup.bat:當 unattend.xml FirstLogonCommands 沒成功跑起 Setup.ps1 時,
把這支從 USB 雙擊執行,會 UAC 提權 + 從 USB 重拷 + 跑 + console 即時印 + 收 log
2026-04-28 08:35:48 +08:00
..

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
steps/ — 拆解後的 post-install 步驟,每段一個 .bat 雙擊執行
==========================================================

用法
----
1. 把 USB 插上 Windows 機器
2. 用檔案總管打開 D:\ventoy\script\steps\D 換成 USB 在 Windows 看到的代號)
3. 雙擊任一個 NN-xxx.bat會自動 UAC 提權)
4. 黑色 console 視窗會即時顯示 START / DONE / ERR
5. 跑完按任意鍵關掉視窗

想一次跑完,雙擊 RUN-ALL.bat 即可。

順序建議
--------
Phase 1不需要網路本機設定
  01-firewall-ssh-22                  防火牆開 SSH 22
  02-rdp-enable-3389                  打開 RDP
  03-icmp-echo-allow                  允許 ping
  04-winrm-enable                     啟用 WinRM
  05-onedrive-remove                  移除 OneDrive
  06-cortana-websearch-off            關 Cortana / Web Search
  07-apply-ui-ime-default-profile     UI/IME 預設套到 Default profile
  08-hide-admin-account               把 Admin 從登入畫面藏掉
  09-pause-windows-update             暫停 WU避免下面動作搶頻寬

Phase 2需要網路下載安裝
  10-openssh-server-install           OpenSSH Server FoD
  11-kms-activate                     KMS 啟用
  12-winget-install-chrome            裝 Chrome
  13-remove-windows-ai                RemoveWindowsAI 線上腳本
  14-win11debloat                     Win11Debloat讀同目錄 win11debloat-config.json
  15-remove-uwp-apps                  批次移除 UWP
  16-install-telegram                 裝 Telegram

收尾
  17-resume-trigger-wu                解除 WU 暫停 + 觸發掃描

Log
---
所有 step.ps1 共用同一個 log
  C:\Windows\Temp\setup.log

每段會印 [時間] === 段名 START === / DONE === / ERR ===

檔案結構
--------
  _common.ps1                共用 helperLog / Section / Set-RegValue / Wait-Network
  _template.bat              .bat 樣板(不要動)
  NN-xxx.ps1                 各段邏輯
  NN-xxx.bat                 各段 .bat自動 UAC + 跑 .ps1
  win11debloat-config.json   14 段用的 JSON 設定
  RUN-ALL.bat                依序跑 01..17 全部