新增 user 帳號與 OpenSSH Server 自動部署;Telegram 步驟加 log 以便排查無聲失敗
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
45
DEPLOY.md
45
DEPLOY.md
@@ -116,16 +116,51 @@ cat /Volumes/Ventoy/ventoy/ventoy.json
|
||||
| 1 | `powershell -File C:\Scripts\Setup.ps1` | 看腳本內容 |
|
||||
| 2 | `net accounts /maxpwage:unlimited`(密碼永不過期) | 否 |
|
||||
| 3 | `Rename-Computer` 把主機名改成 `PC-XXXXX`(重開後生效) | 否 |
|
||||
| 4 | 下載 `https://telegram.org/dl/desktop/win64` → 靜默安裝(`/VERYSILENT /SUPPRESSMSGBOXES /NORESTART`) | **是** |
|
||||
| 5 | `shutdown /r /t 5` 重開機 | 否 |
|
||||
| 4 | `net user user 1234 /add`+`/logonpasswordchg:yes`(建立一般使用者 `user`,首次登入強制改密) | 否 |
|
||||
| 5 | 等網路→`Add-WindowsCapability OpenSSH.Server`+`Set-Service sshd Automatic`+`Start-Service sshd`(log: `firstlogon-sshd.log`) | **是** |
|
||||
| 6 | 等網路→下載 `https://telegram.org/dl/desktop/win64` → 靜默安裝(`/VERYSILENT /SUPPRESSMSGBOXES /NORESTART`,log: `firstlogon-telegram.log`) | **是** |
|
||||
| 7 | `shutdown /r /t 5` 重開機 | 否 |
|
||||
|
||||
Telegram 這條的注意事項:
|
||||
### 新加入的 `user` 帳號
|
||||
|
||||
- **要有網路**:OOBE 裡 `SkipMachineOOBE=true` 跳過了網路設定精靈,所以目標機必須有 Ethernet+DHCP,或本身已記住 Wi-Fi。網路不通時 `Invoke-WebRequest` 會失敗,但不會擋到 Order 5 的 reboot,只會讓 Telegram 沒裝成。
|
||||
- **per-user 安裝**:Telegram 安裝程式預設裝到 Admin 這個帳號底下,其他帳號看不到。要全機安裝就在 `ArgumentList` 加 `'/ALLUSERS'`。
|
||||
- **用途**:給使用者日常使用,和部署用的管理員 `Admin` 分開。
|
||||
- **權限**:一般 `Users` 群組(非 Administrators)。需要管理員權限時走 UAC。
|
||||
- **首次登入強制改密**:`/logonpasswordchg:yes` 會在下次登入時跳「密碼必須變更」。可以改成複雜密碼。
|
||||
- **如果 `net user` 因為 Windows 密碼政策拒絕 `1234`**:整條 Order 4 會失敗但不會擋後面,手動於 PowerShell 以 `New-LocalUser`+更寬的密碼重跑。
|
||||
|
||||
### OpenSSH Server(Order 5)
|
||||
|
||||
- 走 Windows 內建 Feature on Demand,**會從 Windows Update 下載** `OpenSSH.Server~~~~0.0.1.0`。需要外網。
|
||||
- 完成後 `sshd` 服務設成 `Automatic`(每次開機自動啟動),防火牆規則由 FoD 自動建立(TCP 22 inbound allow)。
|
||||
- 驗證:`Get-Service sshd` 應該 `Running`;`Get-NetFirewallRule -Name OpenSSH-Server-In-TCP` 應該 `Enabled=True`。
|
||||
- 用來遠端登入:`ssh Admin@<機器 IP>` 或 `ssh user@<機器 IP>`。初次使用要先在 `%ProgramData%\ssh\administrators_authorized_keys` 加公鑰(Windows OpenSSH 對 Administrators 群組的授權金鑰路徑特殊,不走 `~/.ssh/authorized_keys`)。
|
||||
|
||||
### Telegram(Order 6)的注意事項
|
||||
|
||||
- **要有網路**:OOBE 裡 `SkipMachineOOBE=true` 跳過了網路設定精靈,所以目標機必須有 Ethernet+DHCP,或本身已記住 Wi-Fi。這次有 log 可以驗證—`C:\Windows\Temp\firstlogon-telegram.log` 會寫 `NetWait=?s`、`Downloaded ?B`、`Exit ?`。
|
||||
- **網路等待上限 60 秒**:Order 5 和 Order 6 都各跑一次 `Test-Connection 8.8.8.8` 迴圈,最多等 30 回合×2 秒;ICMP 被擋住的環境會等完整 60 秒但 HTTPS 其實可用,也能跑下去。
|
||||
- **per-user 安裝**:Telegram 安裝程式預設裝到 Admin 這個帳號底下,**新建的 `user` 看不到**。要全機安裝就在 `ArgumentList` 加 `'/ALLUSERS'`。
|
||||
- **抓的是 latest 版**:每次部署抓當下最新版。要鎖版本改用 `https://updates.tdesktop.com/tsetup/tsetup-x64.X.Y.Z.exe` 直鏈。
|
||||
- **順序不能搬到 reboot 後**:`shutdown /r /t 5` 只是排程重開機、立即回傳,若放在 Telegram 前面,下載安裝會被 5 秒後的關機砍掉。
|
||||
|
||||
### 上次部署 Telegram 無聲失敗如何排查
|
||||
|
||||
這次每一條都有 log:登入 `Admin` 後看
|
||||
|
||||
```
|
||||
notepad C:\Windows\Temp\firstlogon-telegram.log
|
||||
notepad C:\Windows\Temp\firstlogon-sshd.log
|
||||
```
|
||||
|
||||
常見會看到的值:
|
||||
|
||||
| Log 內容 | 代表 | 對策 |
|
||||
|---|---|---|
|
||||
| `NetWait=60s` + `ERR ...` | 60 秒內 ICMP 沒通,後面可能也失敗 | 接網路線、或在 OOBE 後手動連 Wi-Fi 後重跑指令 |
|
||||
| `Downloaded 0B` 或 `ERR` 含 `SSL/TLS` | TLS 交握失敗 | 檢查系統時間是否對;老機器可能要裝 Windows Update for TLS 1.2 |
|
||||
| `Exit 0` 但桌面沒 Telegram 捷徑 | 裝成功但 per-user 安裝、不是登入那個帳號 | 以 Admin 登入,捷徑在 `%APPDATA%\Microsoft\Windows\Start Menu\Programs\Telegram Desktop` |
|
||||
| 完全沒 log 檔 | 這條 `SynchronousCommand` 根本沒跑(通常是 `AutoLogon.Enabled=false` 或 XML 沒注入) | 查 `C:\Windows\Panther\UnattendGC\setupact.log` |
|
||||
|
||||
---
|
||||
|
||||
## 本次部署已知限制
|
||||
|
||||
Reference in New Issue
Block a user