3 Commits

Author SHA1 Message Date
a7975343c3 07:在桌面顯示「本機」與「控制台」(Default profile + 已載入 user hive)
寫到 HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons
底下的 NewStartPanel + ClassicStartMenu 兩個 key(NewStartPanel 是 Win11 用、
ClassicStartMenu 為相容性也寫一份)。值 0=顯示,1=隱藏。

腳本內保留 5 個內建 CLSID 對照表註解,未來要新增/移除其他圖示
(使用者檔案 / 網路 / 資源回收筒)只需動 $showOnDesktop 陣列。
2026-04-28 08:58:50 +08:00
22e002d444 07-apply-ui-ime-default-profile:除了 Default profile 也套到所有已載入的真人 user hive
之前只寫 Default profile NTUSER.DAT,新使用者首次登入會繼承——
但若腳本是在 User 已登入後才被重跑(例如 deploy 後想改設定),
Default 改動不會反映到既存的 User profile,肉眼看不到變化。

把套設定的邏輯抽成 Apply-UiImeSettings function,先寫 Default、
再用 Win32_UserProfile 列出所有非系統 profile,凡是 hive 已載入
(HKEY_USERS\<SID> 存在)的就一併寫進去。production 流程下
User 還沒建立、所以只有 Admin 拿到(無關緊要 Admin 會被隱藏);
re-run 時 User hive 已載入則直接生效。
2026-04-28 08:52:29 +08:00
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