Windows 8.1 修改 C:\Windows\System32\drivers\etc\hosts 後,ping 域名仍解析為真實 IP,Hosts 對應不生效。經過程序監控追蹤發現:DNS Client 服務(Dnscache)執行帳戶為「Network Service」而非預設「Local System」,導致無法讀取 Hosts 檔案(權限僅給 SYSTEM 與 Administrators),產生「Access Denied」錯誤。


HKLM\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters\UseHostsFile,但 Win8.1/XP 皆無此值,非關鍵因素。svchost.exe(載入 DNS Client 服務)嘗試讀取 Hosts 檔案,Win8.1 回傳 Access Denied,XP 回傳 Success。etc 資料夾權限僅含 SYSTEM、Administrators、Users,**缺少 Network Service**,故讀取失敗。C:\Windows\System32\drivers\etc → 右鍵「內容」→ 「安全性」索引標籤。Network Service → 「檢查名稱」→ 「確定」。Network Service → 勾選「讀取」與「讀取與執行」權限 → 「確定」套用。net stop dnscache && net start dnscacheping Hosts 中對應的域名,應回傳指定 IP。Win8.1 Hosts 失效多為 DNS Client 服務帳戶異常導致權限不足。透過授予 etc 資料夾 Network Service 讀取權限,或將服務帳戶改回 Local System,均可從根本解決。此問題揭示了服務帳戶與檔案系統權限一致性的重要性。