透過缺少服務主體名稱(SPN)導致 PowerShell Remoting Kerberos 驗證失敗

Ling Liu 40 信譽點數
2026-09-10T06:55:10.3+00:00

使用 Enter-PSSession 進行遠端管理時,因 Kerberos 驗證失敗而出現「WinRM cannot process the request」錯誤。如何使用 setspn 註冊缺少的 WSMAN 服務主體名稱(例如 HTTP/servername),以恢復 Kerberos 驗證?

Windows 商務版 | Windows 365 企業版
0 則留言 沒有留言

由問題作者接受的回答
Jason Nguyen Tran 26,170 信譽點數 獨立顧問
2026-09-10T07:57:27.89+00:00

您好

您在使用 Enter-PSSession 時遇到的這個錯誤,通常是因為 WSMAN 服務所需要的 服務主體名稱(SPN) 遺失,或尚未正確註冊。沒有正確的 SPN 時,Kerberos 無法驗證遠端主機,因此 WinRM 會拒絕連線要求。

您可以使用 setspn 命令來修正這個問題。例如,在目標伺服器上執行:

setspn -s HTTP/<servername> <domain>\<computeraccount>
setspn -s WSMAN/<servername> <domain>\<computeraccount>

請將 <servername> 替換為伺服器的實際完整網域名稱(FQDN),並將 <computeraccount> 替換為該電腦在 Active Directory 中的電腦帳戶名稱。

其中 -s 參數會先檢查是否已有相同的 SPN,可以避免建立重複的 SPN。

完成 SPN 註冊後,可以執行以下命令清除目前快取的 Kerberos Ticket:

klist purge

然後再次嘗試建立 PowerShell 遠端工作階段。

另外,也請確認 DNS 可以正常解析目標伺服器,而且您連線時使用的伺服器名稱,與註冊 SPN 時使用的名稱完全一致。例如,短名稱和 FQDN 不一致,就可能導致 Kerberos 仍然無法正常驗證。

希望以上說明對您有所幫助。如果您認為此回答有用,請點選 「接受答案(Accept Answer)」,讓我知道這項回覆是否解決了您的問題。

Jason

此回答有幫助嗎?

有 1 人認為此回答有所幫助。
0 則留言 沒有留言

0 個其他答案

排序依據: 最實用

您的回答

答案可由問題作者標示為「已接受」,而由仲裁者標示為「推薦」,這可協助使用者知道答案解決了作者的問題。