Windows XP SP3 將遠端桌面客戶端更新至 6.1 版,原生支援 Network Level Authentication(NLA)。NLA 在建立完整遠端桌面會話前即進行身分驗證,較傳統「連線後再登入」更安全、資源消耗更低。Vista 預設僅允許支援 NLA 的客戶端連線,導致未啟用 NLA 的 XP SP3 無法連線。
regedit,定位 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa。SecurityProviders,在數值資料最前加入 tspkg(保留原有值,以空格分隔)。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders。SecurityProviders,在數值資料最前加入 credssp.dll(同樣保留原值)。完成後,XP 遠端桌面連線對話框將出現「支援網路層級驗證」選項。
輸入 Vista IP 連線時,雖出現驗證對話框,卻報錯 0x80090303。經微軟工程師協助抓包分析,發現Kerberos 驗證要求使用電腦名稱(SPN)而非 IP 位址。因測試環境中 Vista 加入網域、XP 未加域且 DNS 不同網段,導致 Kerberos 找不到 SPN 而失敗。
解決方案: 在 XP 的 C:\Windows\System32\drivers\etc\hosts 加入網域控制站與 Vista 的 FQDN 對應 IP,再以電腦名稱連線,即成功建立 NLA 連線。