針對一般遠端桌面連線進行疑難排解
試用我們的虛擬代理程式 - 它可協助您快速識別並修正常見的 RD 會話連線問題
當遠端桌面用戶端無法連線到遠端桌面,但未提供可協助找出原因的訊息或其他徵兆,請使用下列步驟。
檢查 RDP 通訊協定的狀態
檢查本機電腦上 RDP 通訊協定的狀態
若要檢查並變更本機電腦上 RDP 通訊協定的狀態,請參閱如何啟用遠端桌面。
注意
若無法使用遠端桌面選項,請參閱檢查群組原則物件是否封鎖 RDP。
檢查遠端電腦上 RDP 通訊協定的狀態
重要
這個章節、方法或工作包含修改登錄的步驟。 然而,不當修改登錄可能會發生嚴重的問題。 因此,請務必小心執行下列步驟。 為了保護,請先備份登錄再加以修改,以便在發生問題時加以還原。 如需備份和還原登錄的詳細資訊,請參閱如何在 Windows 中備份及還原登錄。
若要檢查並變更遠端電腦上 RDP 通訊協定的狀態,請使用網路登錄連線:
首先,移至 [開始] 功能表,然後選取 [執行]。 在出現的文字方塊中輸入 regedt32。
在登錄編輯程式中,選取 [檔案],然後選取 [連線網路登錄]。
在 [選取電腦] 對話方塊中,輸入遠端電腦的名稱,選取 [檢查名稱],然後選取 [確定]。
瀏覽至
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server
與至 。HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services
- 如果 fDenyTSConnections 金鑰值為 0,則會啟用 RDP。
- 如果 fDenyTSConnections 金鑰值為 1,則會停用 RDP。
若要啟用 RDP,請將 fDenyTSConnections 的值從 1 變更為 0。
檢查群組原則物件 (GPO) 是否會封鎖本機電腦上的 RDP
如果您無法開啟使用者介面中的 RDP,或 fDenyTSConnections 的值在您變更後還原成 1,則 GPO 可能覆寫電腦層級設定。
若要檢查本機電腦上的組策略設定,請以系統管理員身分開啟命令提示字元視窗,然後輸入下列命令:
gpresult /H c:\gpresult.html
此命令完成後,開啟 gpresult.html。 在電腦設定\系統管理範本\Windows 元件\遠端桌面服務\遠端桌面工作階段主機\連線中,尋找允許使用者使用遠端桌面服務從遠端連線原則。
如果此原則的設定為已啟用,則群組原則不會封鎖 RDP 連線。
如果此原則的設定為已停用,請檢查優勢 GPO。 這是封鎖 RDP 連線的 GPO。
檢查 GPO 是否會封鎖遠端電腦上的 RDP
若要檢查遠端電腦上的群組原則設定,命令與用於本機電腦幾乎一樣:
gpresult /S <computer name> /H c:\gpresult-<computer name>.html
此命令產生的檔案 (gpresult-<computer name>.html) 與本機電腦版本 (gpresult.html) 會使用相同的資訊格式。
修改封鎖 GPO
您可以在群組原則物件編輯器 (GPE) 和群組原則管理主控台 (GPM) 中修改這些設定。 如需如何使用群組原則的詳細資訊,請參閱進階群組原則管理。
若要修改封鎖原則,請使用下列其中一種方法:
- 在 GPE 中,存取適當的 GPO 層級 (例如本機或網域),並巡覽至電腦設定>系統管理範本>Windows 元件>遠端桌面服務>遠端桌面工作階段主機>連線>允許使用者使用遠端桌面服務從遠端連線。
- 將原則設為已啟用或未設定。
- 在受影響的計算機上,以系統管理員身分開啟命令提示字元視窗,然後執行
gpupdate /force
命令。
- 在 GPM 中巡覽到組織單位 (OU),其中的封鎖原則已套用至受影響的電腦,從 OU 中刪除該原則。
檢查 RDP 服務的狀態
在本機 (用戶端) 電腦和遠端 (目標) 電腦上,應執行下列服務:
- 遠端桌面服務 (TermService)
- 遠端桌面服務使用者模式連接埠重新導向器 (UmRdpService)
您可以使用 [服務] MMC 嵌入式管理單元,在本機或遠端管理服務。 您也可以在本機或遠端使用 PowerShell 來管理服務 (如果遠端電腦設定為可接受遠端的 PowerShell Cmdlet)。
在其中一台電腦上,如果其中一個或兩個服務皆未執行,請將其啟動。
注意
如果您啟動遠端桌面服務服務,請選取 [ 是 ] 以自動重新啟動遠端桌面服務 UserMode 埠重新導向器服務。
檢查 RDP 接聽程式是否正常運作
重要
這個章節、方法或工作包含修改登錄的步驟。 然而,不當修改登錄可能會發生嚴重的問題。 因此,請務必小心執行下列步驟。 為了保護,請先備份登錄再加以修改,以便在發生問題時加以還原。 如需備份和還原登錄的詳細資訊,請參閱如何在 Windows 中備份及還原登錄。
檢查 RDP 接聽程式的狀態
針對此程序,使用具有系統管理權限的 PowerShell 執行個體。 針對本機電腦,您也可以使用具有系統管理權限的命令提示字元。 不過,此程序使用 PowerShell,因為相同的 Cmdlet 在本機和遠端皆可運作。
若要連線到遠端電腦,請執行下列 Cmdlet:
Enter-PSSession -ComputerName <computer name>
輸入
qwinsta
。如果清單包含
rdp-tcp
狀態為Listen
的 ,則 RDP 接聽程式正在運作。 繼續檢查 RDP 接聽程式連接埠。 否則,請繼續執行步驟 4。從工作電腦匯出 RDP 接聽程式設定。
登入與受影響電腦具有相同作業系統版本的電腦,並存取該電腦的登錄 (例如,藉由使用登錄編輯程式)。
巡覽至下列登錄項目:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
將項目匯出至
.reg
檔案。 例如,在登錄編輯程式中,以滑鼠右鍵按一下項目,選取 [匯出],然後輸入匯出設定的檔案名稱。將導出的
.reg
檔案複製到受影響的計算機。
若要匯入 RDP 接聽程式設定,請在受影響的電腦上開啟具有系統管理權限的 PowerShell 視窗 (或開啟 PowerShell 視窗並從遠端連線到受影響的電腦)。
若要備份現有的登錄項目,請輸入下列 Cmdlet:
cmd /c 'reg export "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-tcp" C:\Rdp-tcp-backup.reg'
若要移除現有的登錄項目,請輸入下列 Cmdlet:
Remove-Item -path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-tcp' -Recurse -Force
若要匯入新的登錄項目,並重新啟動服務,請輸入下列 Cmdlet:
cmd /c 'regedit /s c:\<filename>.reg' Restart-Service TermService -Force
將檔名>取代<為匯出
.reg
的檔名。
再次嘗試遠端桌面連線以測試設定。 如果您仍然無法連線,請重新啟動受影響的電腦。
如果您仍然無法連線,請檢查 RDP 自我簽署憑證的狀態。
檢查 RDP 自我簽署憑證的狀態
- 如果您仍然無法連線,請開啟 [憑證] MMC 嵌入式管理單元。 當系統提示您選取要管理的憑證存放區,請選取電腦帳戶,然後選取受影響的電腦。
- 在 [遠端桌面] 下方的 [憑證] 資料夾中,刪除 RDP 自我簽署憑證。
- 在受影響的電腦上,重新啟動「遠端桌面服務」服務。
- 重新整理 [憑證] 嵌入式管理單元。
- 如果 RDP 自我簽署憑證尚未重建,請檢查 MachineKeys 資料夾的權限。
檢查 MachineKeys 資料夾的權限
- 在受影響的電腦上開啟 Explorer,然後瀏覽至 C:\ProgramData\Microsoft\Crypto\RSA\。
- 以滑鼠右鍵按兩下 [MachineKeys],選取 [屬性>安全性>進階]。
- 確認已設定下列權限:
- Builtin\Administrators: 完全控制
- 所有人: 讀取、 寫入
檢查 RDP 接聽程式連接埠
在本機 (用戶端) 電腦和遠端 (目標) 電腦上,RDP 接聽程式應在連接埠 3389 上進行接聽。 其他應用程式不應使用此連接埠。
重要
這個章節、方法或工作包含修改登錄的步驟。 然而,不當修改登錄可能會發生嚴重的問題。 因此,請務必小心執行下列步驟。 為了保護,請先備份登錄再加以修改,以便在發生問題時加以還原。 如需備份和還原登錄的詳細資訊,請參閱如何在 Windows 中備份及還原登錄。
若要檢查或變更 RDP 連接埠,請使用登錄編輯程式:
移至 [開始] 功能表並選取 [執行],然後在出現的文字方塊中輸入 regedt32。
- 若要連線至遠端電腦,選取 [檔案],然後選取 [連線網路登錄]。
- 在 [選取電腦] 對話方塊中,輸入遠端電腦的名稱,選取 [檢查名稱],然後選取 [確定]。
開啟登入並瀏覽至
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\<listener>
。如果 PortNumber 的值不是 3389,將其變更為 3389。
重要
您可以使用其他連接埠來操作遠端桌面服務。 不過,我們不建議您這麼做。 本文並未說明如何對該類型的設定進行疑難排解。
變更連接埠號碼之後,重新啟動「遠端桌面服務」服務。
確認其他應用程式並未嘗試使用同一個連接埠
針對此程序,使用具有系統管理權限的 PowerShell 執行個體。 針對本機電腦,您也可以使用具有系統管理權限的命令提示字元。 不過,此程序使用 PowerShell,因為相同的 Cmdlet 在本機和遠端皆可運作。
開啟 PowerShell 視窗。 若要連線到遠端電腦,請輸入
Enter-PSSession -ComputerName <computer name>
。輸入下列命令:
cmd /c 'netstat -ano | find "3389"'
尋找具有 Listening 狀態之 TCP 連接埠 3389 (或指派的 RDP 連接埠) 的項目。
注意
對於使用該連接埠的處理程序或服務,其處理程序識別碼 (PID) 會顯示在 [PID] 欄位底下。
若要判斷哪個應用程式正在使用連接埠 3389 (或指派的 RDP 連接埠),請輸入下列命令:
cmd /c 'tasklist /svc | find "<pid listening on 3389>"'
尋找與埠相關聯之 PID 編號的專案(來自
netstat
輸出)。 與該 PID 相關聯的服務或處理程序會顯示在右欄。如果遠端桌面服務 (TermServ.exe) 以外的應用程式或服務正在使用埠,您可以使用下列其中一種方法來解決衝突:
- 設定其他應用程式或服務使用不同的連接埠 (建議)。
- 解除安裝其他應用程式或服務。
- 設定 RDP 使用不同的連接埠,然後重新啟動「遠端桌面服務」服務 (不建議)。
檢查防火牆是否封鎖 RDP 連接埠
使用 工具來 psping
測試您是否可以使用埠 3389 連線到受影響的計算機。
移至不會影響的不同計算機並下載 psping。
以系統管理員身分開啟命令提示字元窗口,變更為您安裝的
psping
目錄,然後輸入下列命令:psping -accepteula <computer IP>:3389
檢查命令的
psping
輸出,以取得下列結果:Connecting to \<computer IP\>
:遠端電腦可連線。(0% loss)
:所有嘗試都成功連線。The remote computer refused the network connection
:無法連線到遠端電腦。(100% loss)
:所有連線嘗試都失敗。
在多部計算機上執行
psping
,以測試其連線到受影響計算機的能力。請注意受影響的電腦是否封鎖來自所有其他電腦、部分其他電腦,或者僅一部其他電腦的連線。
建議的後續步驟:
- 請連絡網路系統管理員,確認網路允許 RDP 流量傳送到受影響的電腦。
- 調查來源電腦與受影響電腦之間的任何防火牆設定 (包括受影響電腦上的 Windows 防火牆),以判斷是否有防火牆封鎖 RDP 連接埠。