常見遠程桌面連接故障排除

  • 項目

嘗試我們的虛擬代理 -它可以幫助你快速識別和修復常見的 RD 會話連接問題

如果遠程桌面客戶端無法連接到遠程桌面,,但未提供可幫助識別原因的消息或其他癥狀,,請使用以下步驟。

檢查 RDP 協(xié)議的狀態(tài)

檢查本地計算機上 RDP 協(xié)議的狀態(tài)

若要檢查和更改本地計算機上 RDP 協(xié)議的狀態(tài),,請參閱如何啟用遠程桌面,。

備注

如果遠程桌面選項不可用,請參閱檢查組策略對象是否正在阻止 RDP,。

檢查遠程計算機上 RDP 協(xié)議的狀態(tài)

重要

請認真遵循本部分的說明。 如果錯誤地修改了注冊表,,可能會出現(xiàn)嚴重問題,。 開始修改注冊表之前,請備份注冊表,,這樣就可以在出錯時還原它,。

若要檢查和更改遠程計算機上 RDP 協(xié)議的狀態(tài),請使用網(wǎng)絡注冊表連接:

  1. 首先轉(zhuǎn)到“開始”菜單,,然后選擇“運行” ,。 在出現(xiàn)的文本框中,輸入“regedt32”,。
  2. 在注冊表編輯器中選擇“文件”,,然后選擇“連接網(wǎng)絡注冊表”。
  3. 在“選擇計算機”對話框中輸入遠程計算機的名稱,,然后依次選擇“檢查名稱”,、“確定”。
  4. 導航到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server 以及 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services,。
    注冊表編輯器,,其中顯示了 fDenyTSConnections 條目
    • 如果 fDenyTSConnections 項的值為 0,則表明已啟用 RDP,。
    • 如果 fDenyTSConnections 項的值為 1,,則表明已禁用 RDP,。
  5. 若要啟用 RDP,請將 fDenyTSConnections 的值從 1 更改為 0,。

檢查組策略對象 (GPO) 是否正在阻止本地計算機上的 RDP

如果無法在用戶界面中啟用 RDP,,或者在更改 fDenyTSConnections 的值后該值恢復為 1,則表明某個 GPO 可能取代了計算機級別的設置,。

若要檢查本地計算機上的組策略配置,,請以管理員身份打開命令提示符窗口,然后輸入以下命令:

Windows 命令提示符
gpresult /H c:\gpresult.html

完成此命令后,,打開 gpresult.html,。 在“計算機配置”\“管理模板”\“Windows 組件”\“遠程桌面服務”\“遠程桌面會話主機”\“連接”中,找到“允許用戶通過使用遠程桌面服務進行遠程連接”策略,。

  • 如果此策略的設置為“啟用”,,則表明組策略未阻止 RDP 連接。

  • 如果此策略的設置為“已禁用”,,請檢查“入選的 GPO”,。 正在此 GPO 在阻止 RDP 連接。 gpresult.html 的示例片段,,其中的域級別 GPO“阻止 RDP”正在禁用 RDP,。

    gpresult.html 的示例片段,其中的“本地組策略”正在禁用 RDP,。

檢查 GPO 是否正在阻止遠程計算機上的 RDP

若要檢查遠程計算機上的組策略配置,,所用的命令基本上與本地計算機相同:

Windows 命令提示符
gpresult /S <computer name> /H c:\gpresult-<computer name>.html

此命令生成的文件 (gpresult-<computer name>.html) 使用的信息格式與本地計算機版本 (gpresult.html) 使用的格式相同。

修改阻止 GPO

可以在組策略對象編輯器 (GPE) 和組策略管理控制臺 (GPM) 中修改這些設置,。 有關(guān)如何使用組策略的詳細信息,,請參閱高級組策略管理

若要修改阻止策略,,請使用以下方法之一:

  • 在 GPE 中訪問 GPO 的相應級別(例如本地或域),,然后導航到“計算機配置”>“管理模板”>“Windows 組件”>“遠程桌面服務”>“遠程桌面會話主機”>“連接”>“允許用戶通過使用遠程桌面服務進行遠程連接”。
    1. 將策略設置為“啟用”或“不配置”,。
    2. 在受影響的計算機上,,以管理員身份打開命令提示符窗口,然后運行 gpupdate /force 命令,。
  • 在 GPM 中,,導航到其中的阻止策略已應用到受影響計算機的組織單位 (OU),并從此 OU 中刪除該策略,。

檢查 RDP 服務的狀態(tài)

在本地(客戶端)計算機和遠程(目標)計算機上,,以下服務應該正在運行:

  • 遠程桌面服務 (TermService)
  • 遠程桌面服務用戶模式端口重定向程序 (UmRdpService)

可以使用“服務”MMC 管理單元在本地或遠程管理這些服務。 還可以通過本地或遠程方式使用 PowerShell 來管理服務(如果遠程計算機配置為接受遠程 PowerShell cmdlet),。

Services MMC 管理單元中的遠程桌面服務,。請勿修改默認服務設置,。

在任一計算機上,如果上述一個或兩個服務未運行,,請啟動它們,。

備注

如果啟動了“遠程桌面服務”服務,請單擊“是”自動重啟“遠程桌面服務用戶模式端口重定向程序”服務,。

檢查 RDP 偵聽器是否正常運行

重要

請認真遵循本部分的說明,。 如果錯誤地修改了注冊表,可能會出現(xiàn)嚴重問題,。 開始修改注冊表之前,,請備份注冊表,這樣就可以在出錯時還原它,。

檢查 RDP 偵聽器的狀態(tài)

請使用具有管理權(quán)限的 PowerShell 實例完成此過程,。 對于本地計算機,還可以使用具有管理權(quán)限的命令提示符,。 但是,,此過程使用 PowerShell,因為同一 cmdlet 可以通過本地和遠程方式運行,。

  1. 若要連接到遠程計算機,,請運行以下 cmdlet:

    PowerShell
    Enter-PSSession -ComputerName <computer name>
    
  2. 輸入 qwinstaqwinsta 命令會列出在計算機端口上偵聽的進程,。

  3. 如果列表中包含狀態(tài)為 Listenrdp-tcp,,則表示 RDP 偵聽器正在運行。 繼續(xù)檢查 RDP 偵聽器端口,。 否則,請繼續(xù)執(zhí)行步驟 4,。

  4. 從工作計算機導出 RDP 偵聽器配置,。

    1. 登錄到操作系統(tǒng)版本與受影響計算機的操作系統(tǒng)版本相同的計算機,并訪問該計算機的注冊表(例如,,通過使用注冊表編輯器),。
    2. 導航到以下注冊表項:
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
    3. 將該項導出到 .reg 文件。 例如,,在注冊表編輯器中,,右鍵單擊該項,選擇“導出”,,然后輸入所導出設置的文件名,。
    4. 將導出的 .reg 文件復制到受影響的計算機。
  5. 若要導入 RDP 偵聽器配置,,請在受影響的計算機上打開具有管理權(quán)限的 PowerShell 窗口(或打開 PowerShell 窗口并遠程連接到受影響的計算機),。

    1. 若要備份現(xiàn)有的注冊表項,,請輸入以下 cmdlet:

      PowerShell
      cmd /c 'reg export "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-tcp" C:\Rdp-tcp-backup.reg'   
      
    2. 若要刪除現(xiàn)有的注冊表項,請輸入以下 cmdlet:

      PowerShell
      Remove-Item -path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-tcp' -Recurse -Force  
      
    3. 若要導入新的注冊表項并重啟服務,,請輸入以下 cmdlet:

      PowerShell
      cmd /c 'regedit /s c:\<filename>.reg'  
      Restart-Service TermService -Force  
      

      將 <filename> 替換為導出的 .reg 文件的名稱,。

  6. 通過再次嘗試遠程桌面連接來測試配置。 如果仍然無法連接,,請重啟受影響的計算機,。

  7. 如果仍然無法連接,請檢查 RDP 自簽名證書的狀態(tài),。

檢查 RDP 自簽名證書的狀態(tài)

  1. 如果仍然無法連接,,請打開“證書”MMC 管理單元。 根據(jù)提示選擇要管理的證書存儲,,選擇“計算機帳戶”,,然后選擇受影響的計算機。
  2. 在“遠程桌面”下的“證書”文件夾中,,刪除 RDP 自簽名證書,。 “證書”MMC 管理單元中的遠程桌面證書。
  3. 在受影響的計算機上,,重啟“遠程桌面服務”服務,。
  4. 刷新“證書”管理單元。
  5. 如果尚未重新創(chuàng)建 RDP 自簽名證書,,請檢查 MachineKeys 文件夾的權(quán)限,。

檢查 MachineKeys 文件夾的權(quán)限

  1. 在受影響的計算機上打開“資源管理器”,然后導航到 C:\ProgramData\Microsoft\Crypto\RSA\,。
  2. 右鍵單擊“MachineKeys”,,依次選擇“屬性”、“安全性”,、“高級”,。
  3. 確保已配置以下權(quán)限:
    • Builtin\Administrators:完全控制
    • Everyone:讀取、寫入

檢查 RDP 偵聽器端口

在本地(客戶端)計算機和遠程(目標)計算機上,,RDP 偵聽器應在端口 3389 上運行,。 不應有任何其他應用程序正在使用此端口。

重要

請認真遵循本部分的說明,。 如果錯誤地修改了注冊表,,可能會出現(xiàn)嚴重問題。 開始修改注冊表之前,,請備份注冊表,,這樣就可以在出錯時還原它。

若要檢查或更改 RDP 端口,,請使用注冊表編輯器:

  1. 轉(zhuǎn)到“開始”菜單,,選擇“運行” ,,然后將 regedt32 輸入顯示的文本框中。
    • 若要連接到遠程計算機,,請依次選擇“文件”,、“連接網(wǎng)絡注冊表”。
    • 在“選擇計算機”對話框中輸入遠程計算機的名稱,,然后依次選擇“檢查名稱”,、“確定”。
  2. 打開注冊表,,導航到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\<listener>,。 RDP 協(xié)議的 PortNumber 子項。
  3. 如果 PortNumber 的值不是 3389,,請將其更改為 3389,。

    重要

    可以使用另一個端口來操作遠程桌面服務。 但是,,我們不建議這樣做,。 本文不介紹如何排查該類配置的問題。

  4. 更改端口號后,,重啟“遠程桌面服務”服務,。

檢查另一個應用程序是否未嘗試使用同一端口

請使用具有管理權(quán)限的 PowerShell 實例完成此過程。 對于本地計算機,,還可以使用具有管理權(quán)限的命令提示符,。 但是,此過程使用 PowerShell,,因為同一 cmdlet 可以通過本地和遠程方式運行,。

  1. 打開 PowerShell 窗口。 若要連接到遠程計算機,,請輸入 Enter-PSSession -ComputerName <計算機名> ,。

  2. 輸入以下命令:

    PowerShell
    cmd /c 'netstat -ano | find "3389"'  
    

    netstat 命令會生成端口列表以及正在偵聽這些端口的服務列表。

  3. 查找狀態(tài)為“正在監(jiān)聽”的 TCP 端口 3389(或分配的 RDP 端口)條目 ,。

    備注

    使用該端口的進程或服務的進程標識符 (PID) 顯示在 PID 列下,。

  4. 若要確定哪個應用程序正在使用端口 3389(或分配的 RDP 端口),,請輸入以下命令:

    PowerShell
    cmd /c 'tasklist /svc | find "<pid listening on 3389>"'  
    

    tasklist 命令會報告特定進程的詳細信息,。

  5. 查找與該端口關(guān)聯(lián)的 PID 號條目(查看 netstat 輸出)。 右列會顯示與該 PID 關(guān)聯(lián)的服務或進程,。

  6. 如果除遠程桌面服務 (TermServ.exe) 以外的某個應用程序或服務正在使用該端口,,你可以使用以下方法之一來解決沖突:

    • 將該應用程序或服務配置為使用其他端口(建議)。
    • 卸載該應用程序或服務,。
    • 將 RDP 配置為使用其他端口,,然后重啟“遠程桌面服務”服務(不建議),。

檢查防火墻是否正在阻止 RDP 端口

使用 psping 工具測試是否可以通過端口 3389 訪問受影響的計算機。

  1. 轉(zhuǎn)到另一臺不受影響的計算機,,從 https://live./psping.exe 下載 psping,。

  2. 以管理員身份打開命令提示符窗口,切換到安裝了 psping 的目錄,,然后輸入以下命令:

    psping -accepteula <computer IP>:3389  
    
  3. psping 命令的輸出中檢查如下所示的結(jié)果:

    • Connecting to <計算機 IP> :遠程計算機可訪問,。
    • (0% loss) :所有連接嘗試均成功。
    • The remote computer refused the network connection:遠程計算機不可訪問,。
    • (100% loss) :所有連接嘗試均失敗,。
  4. 在多臺計算機上運行 psping,以測試它們是否能夠連接到受影響的計算機,。

  5. 請注意受影響的計算機是阻止了來自所有其他計算機的連接,、來自某些其他計算機的連接,還是僅來自其他一臺計算機的連接,。

  6. 建議的后續(xù)步驟:

    • 咨詢網(wǎng)絡管理員,,驗證網(wǎng)絡是否允許 RDP 流量傳輸?shù)绞苡绊懙挠嬎銠C。
    • 調(diào)查源計算機與受影響計算機之間的任何防火墻配置(包括受影響計算機上的 Windows 防火墻),,以確定防火墻是否正在阻止 RDP 端口,。