共用方式為


遠端桌面無法連線到遠端電腦

本文可協助您針對連線到遠端計算機時的錯誤進行疑難解答。

當您使用直接遠端桌面通訊協定 (RDP) 連線來連線到 Windows 電腦時,聯機會失敗,並出現下列其中一個錯誤。 在遠端桌面連線應用程式中輸入認證之前或之後,就會發生此錯誤。

  • 遠端桌面無法連線到遠端電腦,原因如下:

    1) 未啟用伺服器的遠端存取
    2) 遠端電腦已關閉
    3) 遠端電腦無法在網路上使用

    請確定遠端電腦已開啟並連線到網路,而且已啟用遠端存取。

  • 這部電腦無法連線到遠端電腦。

    請嘗試重新連線。 如果問題持續發生,請連絡遠端電腦的擁有者或網路系統管理員。

有數個可能的根本原因,但主要原因為 RDP-TCP 接聽程式無法運作,且網路設定不正確。

首先,檢查機器是否正在執行。 如果它正在執行且具有主控台存取權(例如實體機器的整合燈輸出 (iLO),或虛擬機的 Hyper-V 控制台,請測試透過它連線到機器。 如果成功,請繼續 確認錯誤是否與 RDP-TCP 接聽程序有關。

請連絡 Microsoft 支援服務,以取得下列案例中的進一步協助:

  • 您無法讓電腦處於執行中狀態。
  • 計算機處於執行中狀態,但對計算機的控制台存取失敗。

qwinsta執行 命令,以確認 RDP-TCP 接聽程式是否正在運作,讓 RDP 連線運作。

C:\Windows\System32>qwinsta
 SESSIONNAME    USERNAME    ID    STATE    TYPE    DEVICE
 services                   0     Disc
>console                    1     Active
 rdp-tcp                    65536 Listen

如果輸出清單包含 rdp-tcp 狀態中的 Listen 行,RDP-TCP 接聽程式正在執行。 繼續確認錯誤是否與網路有關。

否則,請使用下列方法來針對問題進行疑難解答。

檢查登錄組態

重要

這個章節、方法或工作包含修改登錄的步驟。 然而,不當修改登錄可能會發生嚴重的問題。 因此,請務必小心執行下列步驟。 若要獲得保護,請在進行修改前先備份登錄,以便在出現問題時還原登錄。 如需備份和還原登錄的詳細資訊,請參閱如何在 Windows 中備份及還原登錄

開啟註冊表編輯器,並確定已設定這些機碼,如下所示:

  • DWORD 值 fEnableWinStation 的值數據為 1

    預設路徑: Computer\HKEY\_LOCAL\_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Winstations\RDP-Tcp

  • DWORD 值 fDenyTSConnections 的值數據為 0

    • 預設路徑: Computer\HKEY\_LOCAL\_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server
    • 原則路徑(如果已設定原則): Computer\HKEY\_LOCAL\_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services

注意

原則會覆寫預設設定,且應該使用 gpedit.msc (本機) 或 gpmc.msc (網域層級) 進行設定。

如果同時設定原則和預設值,請確定兩個 fDenyTSConnections 值都設定為 0,以避免可能的接聽程序問題。

檢查服務

請確定下列服務正在執行:

  • 遠端桌面服務(TermService)。
  • 遠端桌面服務 UserMode 埠重新導向器 (UmRdpService)。

如果有任何服務無法啟動,請連絡 Microsoft 支援服務 以取得進一步的協助。

檢查權限

將網路服務新增至受影響計算機上的本機系統管理員群組,並在提升許可權的會話上執行下列 PowerShell Cmdlet:

Add-LocalGroupMember -Group Administrators -Member "Network Service"

之後,請重新啟動遠端桌面服務服務 (TermService)。

檢查 sysprep 狀態

開啟註冊表編輯器並檢查下列機碼,確定電腦未處於 Sysprep 狀態:

Computer\HKEY\_LOCAL\_MACHINE\SYSTEM\Setup

SystemSetupInProgress 和 OOBEInProgress 的 DWORD 值都設定為 0。

取代 RDP-TCP 子機碼

在具有相同 Windows 版本的正常運作機器上匯出下列子機碼:

Computer\HKEY\_LOCAL\_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp

備份受影響計算機上的現有金鑰。 然後,將其刪除,並將它取代為從正常運作的計算機導出的子機碼。

注意

您無法透過 RDP 存取已刪除子機碼的電腦 RDP-Tcp

連絡 Microsoft 支援服務

如果上述步驟無法解決 RDP-TCP 接聽程式無法運作的問題,請連絡 Microsoft 支援服務 以取得進一步的協助。

如果 RDP-TCP 接聽程式正常運作,請使用下列步驟來檢查您是否可以透過控制台會話連線到伺服器(例如實體機器的 iLO,或虛擬機的 Hyper-V 控制台):

  1. 在 [執行] 方塊中輸入 mstsc,以開啟遠端桌面連線應用程式。
  2. 在 [遠端桌面連線] 應用程式中,於 [計算機] 方塊中輸入localhost,然後選取[連線]。

如果錯誤持續發生,則問題在於伺服器。 移至 確認電腦的設定和角色

如果錯誤不再發生,則可能與網路相關,而且可能會進一步發生下列步驟。

注意

上述測試只能在 Windows Server 機器上使用,而且可能無法在所有場合使用(例如 Azure 虛擬機)。

如果無法使用或可能,請從相同網路中的計算機,測試與 Test-NetConnection Cmdlet 的連線能力。

若要確認連線問題,請從相同網路中的電腦執行下列步驟:

  1. 開啟提升權限的 PowerShell 視窗,然後執行下列 Cmdlet:

    Test-NetConnection -ComputerName <www.contoso.com> -port 3389 -InformationLevel Detailed
    
  2. 在輸出清單中,如果 TcpTestSucceededTrue,表示沒有連線問題。 移至 確認電腦的設定和角色

  3. 如果 TcpTestSucceededFalse,表示連線問題。 移至下一個步驟。

檢查預設 RDP 連接埠

開啟註冊表編輯器,並確定已設定下列機碼,如下所示:

Computer\HKEY\_LOCAL\_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Winstations\RDP-Tcp

DWORD 值 PortNumber 具有值 0x00000d3d (3389)

如果值不同, 遠端桌面連線 連線應該使用 hostnameportIPaddressport 做為電腦名稱。

檢查功能變數名稱系統 (DNS) 解析

如果使用計算機的主機名時連線失敗,請嘗試使用其IP位址進行連線。

  • 如果連線與IP位址搭配運作,問題可能與名稱解析有關。
  • 如果連線也因IP位址而失敗,請繼續進行下一個疑難解答步驟。

檢查防火牆或網路安全組設定

檢查防火牆規則是否允許 RDP 到電腦,或防火牆是否已停用。

開啟 wf.msc,選取 [ 輸入規則 ],然後尋找 遠端桌面 - 使用者模式 (TCP-In)遠端桌面 - 使用者模式 (UDP-In)。 請確定他們已啟用所有設定檔。

您可以在提升權限的工作階段上使用下列 PowerShell Cmdlet 來取得相同的結果:

Get-NetFirewallRule -DisplayGroup "Remote Desktop" | Set-NetFirewallRule -Enabled True

若要排除防火牆,可以使用PowerShell Cmdlet加以停用:

Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False

如果其他網路元素正在限制流量,則應該檢查它們。

使用 Azure 雲端時,請檢查網路安全組 (NSG) 是否已設定為允許 RDP 到子網或網路介面卡 (NIC)。 如果您使用 公用IP位址的標準SKU,則 NSG 是必要的。

檢查防病毒軟體 (AV)

防病毒軟體可能會對機器的 RDP 連線造成負面影響。 可能的話,請停用AV服務並測試連線。

若要完全排除 AV 作為根本原因,請將它卸載並重新啟動電腦。

連絡 Microsoft 支援服務

如果上述步驟無法解決問題,RDP-TCP 接聽程式正在運作,且連線測試結果為 False,請連絡 Microsoft 支援服務 以取得進一步的協助。

確認電腦的設定和角色

如果 RDP-TCP 接聽程式正常運作,且電腦連線測試結果為 True,則應該檢查與計算機進程、角色或組態相關的其他案例。

使用預設 RDP 連接埠檢查並行進程

在提升許可權的命令提示字元或 PowerShell 視窗中執行下列命令,並確定進程識別碼 (PID) 符合 TermService 在埠 3389 上接聽的命令:

  • tasklist /svc | findstr TermService
    
  • netstat -anob | findstr 3389
    

例如, TermService 使用 PID 820 正在接聽埠 3389。

C:\Windows\System32>tasklist /svc | findstr TermService
svchost.exe        820 TermService

C:\Windows\System32>netstat -anob | findstr 3389
  TCP    0.0.0.0:3389    0.0.0.0:0    LISTENING    820
  TCP    [::]:3389       [::]:0       LISTENING    820
  UDP    0.0.0.0:3389    *:*                       820
  UDP    [::]:3389       *:*                       820

如果 PID 不相符,請找出埠 3389 上正在接聽的進程,並加以停止。 然後,重新啟動遠端桌面服務服務 (TermService)。

檢查遠端桌面自我簽署憑證

請遵循下列步驟,檢查您是否可以重新建立遠端桌面自我簽署憑證:

  1. 開啟 [憑證] Microsoft管理控制台 (MMC) 嵌入式管理單元。 當系統提示您選取要管理的證書存儲時,請選取 [計算機帳戶],然後選取受影響的計算機。
  2. 在 [遠端桌面] 下方的 [憑證] 資料夾中,刪除 RDP 自我簽署憑證。
  3. 重新啟動受影響電腦上的遠端桌面服務服務。
  4. 重新整理憑證嵌入式管理單元。
  5. 如果未重新建立 RDP 自我簽署憑證,請移至 遠端桌面自我簽署憑證
  6. 如果重新建立 RDP 自我簽署憑證,請移至下一個步驟。

檢查遠端桌面服務 (RDS) 角色

檢查是否已安裝不必要的 RDS 角色,伺服器管理員> 管理>移除角色和功能>伺服器角色 - 遠端桌面服務。

如果已安裝不必要的角色,請取消核取對應的方塊,然後繼續移除它們(例如遠端桌面連線代理人角色)。 在結束時重新啟動電腦。

如果不符合下列條件,RDS 部署中具有遠端桌面連線代理人角色的計算機可能仍然會發生此問題:

  • 檢查遠端桌面連線代理人服務 (TSSDis) 是否正在執行。
  • 在計算機管理 (compmgmt.msc) 嵌入式管理單元中,系統工具>本機使用者和群組群組>>RDS 端點伺服器群組必須包含NT AUTHORITY\NETWORK SERVICE 帳戶。

連絡 Microsoft 支援服務

如果上述步驟無法解決問題,RDP-TCP 接聽程式正在運作,且連線測試結果為 True,請連絡 Microsoft 支援服務 以取得進一步的協助。