一般遠端桌面連線疑難解答

試用虛擬代理程式 - 它可協助您快速識別並修正常見的 RD 工作階段連線問題

當遠端桌面用戶端無法連線到遠端桌面,但未提供有助於識別原因的訊息或其他徵兆時,請使用這些步驟。

檢查 RDP 通訊協議的狀態

檢查本機電腦上的 RDP 通訊協議狀態

若要檢查並變更本機電腦上的 RDP 通訊協定狀態,請參閱 如何啟用遠端桌面

注意事項

如果遠端桌面選項無法使用,請參閱檢查 群組原則 物件是否封鎖 RDP

檢查遠端電腦上的 RDP 通訊協議狀態

重要事項

這個章節、方法或工作包含修改登錄的步驟。 然而,不當修改登錄可能會發生嚴重的問題。 因此,請務必謹慎地依照這些步驟執行。 若要獲得保護,請在進行修改前先備份登錄,以便在出現問題時還原登錄。 如需進一步了解如何備份及還原登錄的相關資訊,請參閱如何在 Windows 中備份及還原登錄

若要檢查並變更遠端電腦上的 RDP 通訊協定狀態,請使用網路登錄連線:

  1. 首先,移至 [ 開始 ] 功能表,然後選取 [ 執行]。 在出現的文字框中,輸入 regedt32

  2. 在 [登錄 編輯器 中,選取 [檔案],然後選取 [聯機網络登錄]

  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 可能會覆寫電腦層級設定。

若要檢查本機電腦上的組策略設定,請以系統管理員身分開啟命令提示字元視窗,然後輸入下列命令:

gpresult /H c:\gpresult.html

此指令完成之後,請開 啟gpresult.html。 在 [計算機設定\系統管理範本\Windows 元件\遠端桌面服務\遠端桌面會話主機\Connections 中,尋找 [允許使用者使用遠端桌面服務遠端連線] 原則。

  • 如果此原則的設定為 [已啟用],群組原則 不會封鎖 RDP 連線。

  • 如果此原則的設定為 [ 已停用],請檢查 [贏得 GPO]。 這是封鎖 RDP 連線的 GPO。

    網域層級 GPO 區塊 RDP 停用 RDP 之 gpresult.html 範例區段的螢幕快照。

    本機 群組原則 停用 RDP 之 gpresult.html 範例區段的螢幕快照。

檢查 GPO 是否封鎖遠端電腦上的 RDP

若要檢查遠端電腦上的 群組原則 組態,此命令與本機電腦幾乎相同:

gpresult /S <computer name> /H c:\gpresult-<computer name>.html

此命令產生的 gpresult-computer< 名稱> (檔案.html) 使用與本機電腦版本相同的資訊格式, (gpresult.html) 使用。

修改封鎖 GPO

您可以在 群組原則 Object 編輯器 (GPE) 和 群組原則 Management Console (GPM) 中修改這些設定。 如需如何使用 群組原則 的詳細資訊,請參閱進階 群組原則 管理。

若要修改封鎖原則,請使用下列其中一種方法:

  • 在 GPE 中,存取適當的 GPO (層級,例如本機或網域) ,並流覽至 [計算機>設定] [系統管理>本] [Windows 元件>遠端桌面服務>遠端桌面會話主機>Connections>允許使用者使用遠端桌面服務從遠端連線
    1. 將原則設定為 [ 已啟用 ] 或 [ 未設定]
    2. 在受影響的計算機上,以系統管理員身分開啟命令提示字元視窗,然後執行 gpupdate /force 命令。
  • 在 GPM 中,流覽至組織單位 (將封鎖原則套用至受影響計算機的 OU) ,並從 OU 刪除原則。

檢查 RDP 服務的狀態

在本機 (用戶端) 計算機和遠端 (目標) 電腦上,應執行下列服務:

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

您可以使用服務 MMC 嵌入式管理單元在本機或遠端管理服務。 如果遠端電腦設定為接受遠端 PowerShell Cmdlet) ,您也可以使用 PowerShell 在本機或遠端 (管理服務。

服務 MMC 嵌入式管理單元中遠端桌面服務的螢幕快照。

在任一部計算機上,如果其中一個或兩個服務都未執行,請啟動它們。

注意事項

如果您啟動遠端桌面服務服務,請選取 [是 ] 以自動重新啟動遠端桌面服務 UserMode 埠重新導向器服務。

檢查 RDP 接聽程式是否正常運作

重要事項

這個章節、方法或工作包含修改登錄的步驟。 然而,不當修改登錄可能會發生嚴重的問題。 因此,請務必謹慎地依照這些步驟執行。 若要獲得保護,請在進行修改前先備份登錄,以便在出現問題時還原登錄。 如需進一步了解如何備份及還原登錄的相關資訊,請參閱如何在 Windows 中備份及還原登錄

檢查 RDP 接聽程式的狀態

針對此程式,請使用具有系統管理許可權的 PowerShell 實例。 針對本機計算機,您也可以使用具有系統管理許可權的命令提示字元。 不過,此程式會使用PowerShell,因為相同的 Cmdlet 可在本機和遠端運作。

  1. 若要連線到遠端電腦,請執行下列 Cmdlet:

    Enter-PSSession -ComputerName <computer name>
    
  2. 輸入 qwinsta

    qwinsta 命令的螢幕快照,其中列出在計算機埠上接聽的進程。

  3. 如果清單包含 rdp-tcp 狀態為的 Listen,則 RDP 接聽程式正在運作。 繼續 檢查 RDP 接聽程式埠。 否則,請繼續進行步驟 4。

  4. 從工作計算機匯出 RDP 接聽程式設定。

    1. 登入與受影響計算機具有相同操作系統版本的計算機,並存取該計算機的登錄 (例如使用登錄 編輯器) 。

    2. 瀏覽至下列登入專案:

      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp

    3. 將項目匯出至 .reg 檔案。 例如,在登錄 編輯器 中,以滑鼠右鍵按兩下專案,選取 [出],然後輸入匯出設定的檔名。

    4. 將匯出 .reg 的檔案複製到受影響的計算機。

  5. 若要匯入 RDP 接聽程式設定,請開啟在受影響計算機上具有系統管理許可權的 PowerShell 視窗 (或開啟 PowerShell 視窗,然後從遠端連線到受影響的電腦) 。

    1. 若要備份現有的登錄專案,請輸入下列 Cmdlet:

      cmd /c 'reg export "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-tcp" C:\Rdp-tcp-backup.reg'
      
    2. 若要移除現有的登錄專案,請輸入下列 Cmdlet:

      Remove-Item -path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-tcp' -Recurse -Force
      
    3. 若要匯入新的登錄項目,然後重新啟動服務,請輸入下列 Cmdlet:

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

      將 filename> 取代<為匯出之檔案的.reg名稱。

  6. 再次嘗試遠端桌面連線來測試設定。 如果您仍然無法連線,請重新啟動受影響的計算機。

  7. 如果您仍然無法連線, 請檢查 RDP 自我簽署憑證的狀態

檢查 RDP 自我簽署憑證的狀態

  1. 如果您仍然無法連線,請開啟憑證 MMC 嵌入式管理單元。 當系統提示您選取要管理的證書存儲時,請選取 [ 計算機帳戶],然後選取受影響的計算機。
  2. 在 [遠端桌面] 下的 [憑證] 資料夾中,刪除 RDP 自我簽署憑證。
  3. 在受影響的計算機上,重新啟動遠端桌面服務服務。
  4. 重新整理憑證嵌入式管理單元。
  5. 如果尚未重新建立 RDP 自我簽署憑證, 請檢查 MachineKeys 資料夾的許可權

檢查 MachineKeys 資料夾的許可權

  1. 在受影響的計算機上,開啟 [總管],然後流覽至 C:\ProgramData\Microsoft\Crypto\RSA\
  2. 以滑鼠右鍵按兩下 [MachineKeys],選取 [屬性>安全>性進階]
  3. 請確定已設定下列權限:
    • Builtin\Administrators完全控制
    • 所有人讀取寫入

檢查 RDP 接聽程式埠

在本機 (用戶端) 計算機和遠端 (目標) 計算機上,RDP 接聽程式應該在埠 3389 上接聽。 其他任何應用程式都不應該使用此埠。

重要事項

這個章節、方法或工作包含修改登錄的步驟。 然而,不當修改登錄可能會發生嚴重的問題。 因此,請務必謹慎地依照這些步驟執行。 若要獲得保護,請在進行修改前先備份登錄,以便在出現問題時還原登錄。 如需進一步了解如何備份及還原登錄的相關資訊,請參閱如何在 Windows 中備份及還原登錄

若要檢查或變更 RDP 連接埠,請使用登錄 編輯器:

  1. 移至 [開始] 功能表,選取 [ 執行],然後在出現的文本框中輸入 regedt32

    • 若要連線到遠端計算機,請選取 [檔案],然後選取 [ 連線網络登錄]
    • 在 [ 選取計算機 ] 對話框中,輸入遠端計算機的名稱,選取 [檢查名稱],然後選取 [ 確定]
  2. 開啟登入並瀏覽至 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\<listener>

    RDP 通訊協定的 PortNumber 子機碼螢幕快照。

  3. 如果 PortNumber 的值不是 3389,請將它變更為 3389

    重要事項

    您可以使用另一個埠來操作遠端桌面服務。 不過,我們不建議您這麼做。 本文並未說明如何針對該類型的設定進行疑難解答。

  4. 變更埠號碼之後,請重新啟動遠端桌面服務服務。

檢查另一個應用程式未嘗試使用相同的埠

針對此程式,請使用具有系統管理許可權的 PowerShell 實例。 針對本機計算機,您也可以使用具有系統管理許可權的命令提示字元。 不過,此程式會使用PowerShell,因為相同的 Cmdlet 可在本機和遠端運作。

  1. 開啟 PowerShell 視窗。 若要連線到遠端電腦,請輸入 Enter-PSSession -ComputerName <computer name>

  2. 輸入下列命令:

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

    netstat 命令的螢幕快照,此命令會產生埠和接聽埠的服務清單。

  3. 尋找狀態為 Listening 的 TCP 連接埠 3389 (或指派的 RDP 連接埠) 項目。

    注意事項

    使用該埠之進程或服務的進程標識碼 (PID) 會出現在 [PID] 資料行底下。

  4. 若要判斷哪個應用程式使用埠 3389 (或指派的 RDP 連接埠) ,請輸入下列命令:

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

    Tasklist 命令的螢幕快照,該命令會報告特定進程的詳細數據。

  5. 從輸出) 尋找與埠 (netstat 相關聯的 PID 編號專案。 與該 PID 相關聯的服務或進程會出現在右側數據行上。

  6. 如果遠端桌面服務以外的應用程式或服務 (TermServ.exe) 使用埠,您可以使用下列其中一種方法來解決衝突:

    • 將其他應用程式或服務設定為使用其他埠 (建議的) 。
    • 卸載其他應用程式或服務。
    • 將 RDP 設定為使用不同的埠,然後重新啟動遠端桌面服務服務 (不建議) 。

檢查防火牆是否封鎖 RDP 埠

使用此 psping 工具來測試是否可以使用埠 3389 連線到受影響的計算機。

  1. 移至不受影響的不同電腦並下載 psping

  2. 以系統管理員身分開啟命令提示字元窗口,變更為您安裝 psping的目錄,然後輸入下列命令:

    psping -accepteula <computer IP>:3389
    
  3. 檢查命令的輸出, psping 以取得如下所示的結果:

    • Connecting to \<computer IP\>:可連線到遠端電腦。
    • (0% loss):所有連線嘗試都成功。
    • The remote computer refused the network connection:無法連線到遠端電腦。
    • (100% loss):所有連線嘗試都失敗。
  4. psping 多部計算機上執行 ,以測試其連線到受影響計算機的能力。

  5. 請注意,受影響的計算機是否會封鎖來自所有其他計算機、一些其他計算機或只有另一部計算機的連線。

  6. 建議的後續步驟:

    • Engage 您的網路管理員確認網路允許 RDP 流量流向受影響的電腦。
    • 調查來源計算機與受影響計算機之間的任何防火牆設定 (包括受影響計算機上的 Windows 防火牆) 判斷防火牆是否封鎖 RDP 埠。