遺失 Windows NT 系列(NT 4.0、2000、XP、Server 2003)管理員密碼時,無法以一般方式登入系統。本文整理四種主流解鎖方案,依操作難度、風險與適用場景分析比較,協助管理者依環境選擇最適方案。
系統帳號資訊儲存於 %SystemRoot%\System32\Config\SAM 登錄檔。刪除或重命名此檔案,重開機後系統將重建預設帳號:Administrator(空密碼)與 Guest。
非網域環境、帳號極少、可接受重建帳號與服務設定的獨立工作站/伺服器。
製作開機媒體(軟碟/光碟/USB),啟動後直接掛載系統分區,離線修改 SAM 登錄檔重設密碼。
替換系統啟動早期必定會執行的服務程式(如 svchost.exe),植入自訂程式在服務啟動時清除 Administrator 密碼,完成後再還原原程式。
系統核心程式(smss.exe、csrss.exe、winlogon.exe、services.exe、lsass.exe)任一異常即導致重開機;lsass.exe 啟動前無法修改密碼。svchost.exe 載入 RPC 等核心服務,幾乎所有 Windows 2000/XP 系統必定啟動,且在 LSASS 之後執行,滿足修改密碼時機。
C:\Windows\System32\svchost.exe → svchost.bak.exeCleanPwd.exe)為 svchost.exeC:\CleanPwd.txtsvchost.bak.exe → svchost.exeDWORD SetUserPwd(char *user, char *pass) {
wchar_t wuser[PWLEN], wpass[PWLEN];
USER_INFO_1003 ui;
mbstowcs(wuser, user, strlen(user)+1);
mbstowcs(wpass, pass, strlen(pass)+1);
ui.usri1003_password = wpass;
return NetUserSetInfo(NULL, wuser, 1003, (LPBYTE)&ui, NULL);
}
// 主程式呼叫 SetUserPwd("administrator", "") 清空密碼
WinMgmt.exe (WMI)、mstask.exe (工作排程)、regsvc.exe (遠端登錄)登入畫面閒置一段時間後會啟動螢幕保護程式 logon.scr,以 SYSTEM 權限執行。將其替換為 cmd.exe 或 explorer.exe,等待螢幕保護程式觸發即可取得系統級命令提示字元,執行 net user administrator "" 清除密碼。
C:\Windows\System32\logon.scrcmd.exe 為 logon.scrlogon.scr| 方案 | 難度 | 資料風險 | 保留帳號結構 | 適用環境 | 需額外媒體 |
|---|---|---|---|---|---|
| 刪除 SAM | 低 | 高(帳號全失) | 否 | 獨立工作站、非關鍵伺服器 | 是 |
| Offline NT Password Editor | 中 | 低 | 是 | 大多數單機/工作群組環境 | 是 |
| 替換 svchost.exe | 高 | 中(若還原失敗) | 是 | 需保留完整帳號結構的生產環境 | 是 |
| 替換 logon.scr | 中 | 低 | 是 | 無法使用其他工具時的替代方案 | 是 |