前言:升級不自動修正 ACL 的風險
Windows NT 4.0 升級至 Windows Server 2003 時,**安裝程式不會修改既有登錄與檔案系統 ACL**。Win2003 引入更嚴格的預設安全性描述元 (SD)、SID 格式、繼承旗標,若仍沿用 NT 4.0 時代的寬鬆 ACL,會導致:
☐ 一般使用者能寫入系統關鍵資料夾
☐ 匿名存取 (Null Session) 列舉共享/使用者
☐ 服務帳號權限過高 (違反最小權限)
工具:「安全性設定與分析」 (Security Configuration and Analysis)
內建 MMC 管理單元,可將系統目前設定與安全性範本 (`.inf`) 比對、套用。
步驟 1:開啟 MMC 並加入管理單元
開始 → 執行 → mmc → Enter。
- 檔案 → 新增/移除管理單元 → 新增 → 安全性設定與分析 → 新增 → 關閉 → 確定。
步驟 2:建立/開啟資料庫
- 右鍵「安全性設定與分析」→ 開啟資料庫。
- 檔名:
upgdbase.sdb (任意路徑) → 開啟。
步驟 3:匯入預設安全性範本
- 彈出「匯入範本」對話框,選取 setup security.inf (位於
%SystemRoot%\Security\Templates\) → 開啟。
- 此範本包含 Win2003 全新安裝的預設 ACL、稽核原則、密碼原則等。
步驟 4:分析目前系統與範本差異
- 右鍵「安全性設定與分析」→ 立即分析電腦。
- 錯誤記錄檔路徑採預設 → 確定。
- 分析完成後,展開各節點 (帳號原則、本機原則、事件記錄、受限群組、系統服務、登錄、檔案系統)。
步驟 5:解讀分析結果
| 圖示 | 含義 | 行動建議 |
| ✅ 綠色勾號 | 目前設定符合範本 | 無需動作 |
| 🔴 紅色叉號 | 目前設定**不符合**範本 (較寬鬆或較嚴格) | **需審查並決定是否套用範本值** |
| ⚪ 白色無標記 | 範本未定義此項 | 保留現狀或自行定義 |
步驟 6:關鍵不符項目逐項審查 (舉例)
- 檔案系統 → %SystemRoot%\System32:NT 4.0 可能給 Users「讀取/執行」以外的寫入權 → 範本僅給 Administrators/System 完整控制,Users 唯讀 → **建議套用**。
- 登錄 → HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon:NT 4.0 可能允許 Users 修改 → 範本限制 → **建議套用**。
- 系統服務 → Server (LanmanServer):啟動類型、權限描述元不符 → 依範本修正。
- 本機原則 → 安全性選項 → 「網路存取:允許匿名 SID/名稱轉換」:NT 4.0 預設啟用 → 範本停用 → **必須套用** (防資訊洩露)。
步驟 7:套用範本設定 (謹慎執行)
- 確認已備份系統狀態 (含登錄、SYSVOL、啟動檔案)。
- 右鍵「安全性設定與分析」→ 立即設定電腦。
- 記錄檔路徑確認 → 確定。
- 系統套用所有範本定義的設定,**此動作不可復原** (除非還原備份)。
替代方案:secedit 命令列自動化
secedit /configure /db upgdbase.sdb /cfg "%SystemRoot%\Security\Templates\setup security.inf" /log setup_security.log /quiet
適合批次處理多台升級伺服器。
結語
NT 4.0 升級至 Win2003 後,**務必執行安全性範本分析與選擇性套用**,修正 ACL 遺留問題。建議先在測試機完整驗證應用程式相容性,再套用至生產環境,並保留完整系統狀態備份以利回滾。