使用 Telnet/SSH 遠端登入 Windows 伺服器時,預設工作目錄通常為 C:\Documents and Settings\Administrator (XP/Server 2003) 或 C:\Users\Administrator (Vista/7/10/11)。若因系統遷移、帳號重建、磁碟重新配置導致實際使用者設定檔路徑不符 (如變成 C:\Documents and Settings\anywolfs.com),將造成腳本失效、路徑相依程式報錯。本文詳細說明透過登錄表修改 ProfileImagePath 將預設根目錄恢復標準路徑的完整步驟與原理。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList 下各 SID 子鍵的 ProfileImagePath 值。cmd,輸入 whoami /user 取得當前使用者 SID (格式:S-1-5-21-...-500 為內建 Administrator)。ProfileList 下各 SID 子鍵的 ProfileImagePath,找到類型為 REG_EXPAND_SZ、值為目前錯誤路徑 (如 %SystemDrive%\Documents and Settings\anywolfs.com) 的項目。regedit,瀏覽至:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\<正確的SID>%SystemDrive%\Documents and Settings\Administrator%SystemDrive%\Users\Administrator登錄值修改僅影響後續登入,**必須確保目標資料夾實際存在且包含完整使用者設定檔**:
robocopy /mir /copyall /r:0 /w:0 或 xcopy /e /h /k /o /x)。NTUSER.DAT、NTUSER.DAT.LOG、AppData、Desktop、Documents 等關鍵項目完整複製。cd 或 echo %USERPROFILE% 確認工作目錄為標準路徑。dir 確認檔案可見。| 情境 | 處理方式 |
|---|---|
| 域使用者 (DOMAIN\User) | SID 為域 SID,ProfileList 中同樣有對應項目。修改方式相同,目標路徑通常為 %SystemDrive%\Users\DOMAIN_User。需確保域控制器同步無誤。 |
| 漫遊設定檔 | ProfileImagePath 指向本地快取路徑,伺服器端路徑由群組原則 User Profile Path 決定。修改本地快取路徑需同步更新伺服器端設定。 |
| 強制性設定檔 (NTUSER.MAN) | 同樣遵循 ProfileImagePath,但設定檔唯讀。修改路徑後需重新產生 .MAN 檔案。 |
ProfileList 金鑰或完整系統登錄備份。%USERPROFILE%、%HOMEPATH%、%APPDATA% 而非絕對路徑。| 現象 | 可能原因 | 對策 |
|---|---|---|
| 修改後仍進入舊路徑 | 未重新啟動服務/系統、SID 錯誤、檔案系統未同步 | 重啟伺服器、驗證 SID (whoami /user)、完成檔案複製 |
| 登入後建立臨時設定檔 | 目標資料夾權限錯誤、NTUSER.DAT 損壞/遺失 | 檢查資料夾權限 (Administrator/系統 完整控制)、重新複製設定檔 |
| 登錄找不到對應 SID | 使用者設定檔損壞、從未正常登入過 | 以該使用者登入一次本機建立設定檔,或手動建立 SID 項目 |
修正 ProfileImagePath 是解決 Telnet/SSH 預設根目錄異常的核心方案。關鍵在於:**精確識別 SID、修改登錄值、同步檔案系統、重啟驗證** 四步驟缺一不可。長期而言,建議淘汰 Telnet 全面遷移至 SSH,並善用環境變數撰寫路徑無關腳本,從根本消除此類問題。