常見遠程桌面連接故障排除
- 項目
嘗試我們的虛擬代理 -它可以幫助你快速識別和修復常見的 RD 會話連接問題
如果遠程桌面客戶端無法連接到遠程桌面,,但未提供可幫助識別原因的消息或其他癥狀,,請使用以下步驟。
若要檢查和更改本地計算機上 RDP 協(xié)議的狀態(tài),,請參閱如何啟用遠程桌面,。
備注
如果遠程桌面選項不可用,請參閱檢查組策略對象是否正在阻止 RDP,。
重要
請認真遵循本部分的說明。 如果錯誤地修改了注冊表,,可能會出現(xiàn)嚴重問題,。 開始修改注冊表之前,請備份注冊表,,這樣就可以在出錯時還原它,。
若要檢查和更改遠程計算機上 RDP 協(xié)議的狀態(tài),請使用網(wǎng)絡注冊表連接:
- 首先轉(zhuǎn)到“開始”菜單,,然后選擇“運行” ,。 在出現(xiàn)的文本框中,輸入“regedt32”,。
- 在注冊表編輯器中選擇“文件”,,然后選擇“連接網(wǎng)絡注冊表”。
- 在“選擇計算機”對話框中輸入遠程計算機的名稱,,然后依次選擇“檢查名稱”,、“確定”。
- 導航到 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,。
如果無法在用戶界面中啟用 RDP,,或者在更改 fDenyTSConnections 的值后該值恢復為 1,則表明某個 GPO 可能取代了計算機級別的設置,。
若要檢查本地計算機上的組策略配置,,請以管理員身份打開命令提示符窗口,然后輸入以下命令:
gpresult /H c:\gpresult.html
完成此命令后,,打開 gpresult.html,。 在“計算機配置”\“管理模板”\“Windows 組件”\“遠程桌面服務”\“遠程桌面會話主機”\“連接”中,找到“允許用戶通過使用遠程桌面服務進行遠程連接”策略,。
如果此策略的設置為“啟用”,,則表明組策略未阻止 RDP 連接。
如果此策略的設置為“已禁用”,,請檢查“入選的 GPO”,。 正在此 GPO 在阻止 RDP 連接。
若要檢查遠程計算機上的組策略配置,,所用的命令基本上與本地計算機相同:
gpresult /S <computer name> /H c:\gpresult-<computer name>.html
此命令生成的文件 (gpresult-<computer name>.html) 使用的信息格式與本地計算機版本 (gpresult.html) 使用的格式相同。
可以在組策略對象編輯器 (GPE) 和組策略管理控制臺 (GPM) 中修改這些設置,。 有關(guān)如何使用組策略的詳細信息,,請參閱高級組策略管理。
若要修改阻止策略,,請使用以下方法之一:
- 在 GPE 中訪問 GPO 的相應級別(例如本地或域),,然后導航到“計算機配置”>“管理模板”>“Windows 組件”>“遠程桌面服務”>“遠程桌面會話主機”>“連接”>“允許用戶通過使用遠程桌面服務進行遠程連接”。
- 將策略設置為“啟用”或“不配置”,。
- 在受影響的計算機上,,以管理員身份打開命令提示符窗口,然后運行 gpupdate /force 命令,。
- 在 GPM 中,,導航到其中的阻止策略已應用到受影響計算機的組織單位 (OU),并從此 OU 中刪除該策略,。
在本地(客戶端)計算機和遠程(目標)計算機上,,以下服務應該正在運行:
- 遠程桌面服務 (TermService)
- 遠程桌面服務用戶模式端口重定向程序 (UmRdpService)
可以使用“服務”MMC 管理單元在本地或遠程管理這些服務。 還可以通過本地或遠程方式使用 PowerShell 來管理服務(如果遠程計算機配置為接受遠程 PowerShell cmdlet),。
在任一計算機上,如果上述一個或兩個服務未運行,,請啟動它們,。
備注
如果啟動了“遠程桌面服務”服務,請單擊“是”自動重啟“遠程桌面服務用戶模式端口重定向程序”服務,。
重要
請認真遵循本部分的說明,。 如果錯誤地修改了注冊表,可能會出現(xiàn)嚴重問題,。 開始修改注冊表之前,,請備份注冊表,這樣就可以在出錯時還原它,。
請使用具有管理權(quán)限的 PowerShell 實例完成此過程,。 對于本地計算機,還可以使用具有管理權(quán)限的命令提示符,。 但是,,此過程使用 PowerShell,因為同一 cmdlet 可以通過本地和遠程方式運行,。
若要連接到遠程計算機,,請運行以下 cmdlet:
PowerShellEnter-PSSession -ComputerName <computer name>
輸入 qwinsta。
如果列表中包含狀態(tài)為 Listen 的 rdp-tcp,,則表示 RDP 偵聽器正在運行。 繼續(xù)檢查 RDP 偵聽器端口,。 否則,請繼續(xù)執(zhí)行步驟 4,。
從工作計算機導出 RDP 偵聽器配置,。
- 登錄到操作系統(tǒng)版本與受影響計算機的操作系統(tǒng)版本相同的計算機,并訪問該計算機的注冊表(例如,,通過使用注冊表編輯器),。
- 導航到以下注冊表項:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp - 將該項導出到 .reg 文件。 例如,,在注冊表編輯器中,,右鍵單擊該項,選擇“導出”,,然后輸入所導出設置的文件名,。
- 將導出的 .reg 文件復制到受影響的計算機。
若要導入 RDP 偵聽器配置,,請在受影響的計算機上打開具有管理權(quán)限的 PowerShell 窗口(或打開 PowerShell 窗口并遠程連接到受影響的計算機),。
若要備份現(xiàn)有的注冊表項,,請輸入以下 cmdlet:
PowerShellcmd /c 'reg export "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-tcp" C:\Rdp-tcp-backup.reg'
若要刪除現(xiàn)有的注冊表項,請輸入以下 cmdlet:
PowerShellRemove-Item -path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-tcp' -Recurse -Force
若要導入新的注冊表項并重啟服務,,請輸入以下 cmdlet:
PowerShellcmd /c 'regedit /s c:\<filename>.reg' Restart-Service TermService -Force
將 <filename> 替換為導出的 .reg 文件的名稱,。
通過再次嘗試遠程桌面連接來測試配置。 如果仍然無法連接,,請重啟受影響的計算機,。
如果仍然無法連接,請檢查 RDP 自簽名證書的狀態(tài),。
- 如果仍然無法連接,,請打開“證書”MMC 管理單元。 根據(jù)提示選擇要管理的證書存儲,,選擇“計算機帳戶”,,然后選擇受影響的計算機。
- 在“遠程桌面”下的“證書”文件夾中,,刪除 RDP 自簽名證書,。
- 在受影響的計算機上,,重啟“遠程桌面服務”服務,。
- 刷新“證書”管理單元。
- 如果尚未重新創(chuàng)建 RDP 自簽名證書,,請檢查 MachineKeys 文件夾的權(quán)限,。
- 在受影響的計算機上打開“資源管理器”,然后導航到 C:\ProgramData\Microsoft\Crypto\RSA\,。
- 右鍵單擊“MachineKeys”,,依次選擇“屬性”、“安全性”,、“高級”,。
- 確保已配置以下權(quán)限:
- Builtin\Administrators:完全控制
- Everyone:讀取、寫入
在本地(客戶端)計算機和遠程(目標)計算機上,,RDP 偵聽器應在端口 3389 上運行,。 不應有任何其他應用程序正在使用此端口。
重要
請認真遵循本部分的說明,。 如果錯誤地修改了注冊表,,可能會出現(xiàn)嚴重問題。 開始修改注冊表之前,,請備份注冊表,,這樣就可以在出錯時還原它。
若要檢查或更改 RDP 端口,,請使用注冊表編輯器:
- 轉(zhuǎn)到“開始”菜單,,選擇“運行” ,,然后將 regedt32 輸入顯示的文本框中。
- 若要連接到遠程計算機,,請依次選擇“文件”,、“連接網(wǎng)絡注冊表”。
- 在“選擇計算機”對話框中輸入遠程計算機的名稱,,然后依次選擇“檢查名稱”,、“確定”。
- 打開注冊表,,導航到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\<listener>,。
- 如果 PortNumber 的值不是 3389,,請將其更改為 3389,。
重要
可以使用另一個端口來操作遠程桌面服務。 但是,,我們不建議這樣做,。 本文不介紹如何排查該類配置的問題。
- 更改端口號后,,重啟“遠程桌面服務”服務,。
請使用具有管理權(quán)限的 PowerShell 實例完成此過程。 對于本地計算機,,還可以使用具有管理權(quán)限的命令提示符,。 但是,此過程使用 PowerShell,,因為同一 cmdlet 可以通過本地和遠程方式運行,。
打開 PowerShell 窗口。 若要連接到遠程計算機,,請輸入 Enter-PSSession -ComputerName <計算機名> ,。
輸入以下命令:
PowerShellcmd /c 'netstat -ano | find "3389"'
查找狀態(tài)為“正在監(jiān)聽”的 TCP 端口 3389(或分配的 RDP 端口)條目 ,。
備注
使用該端口的進程或服務的進程標識符 (PID) 顯示在 PID 列下,。
若要確定哪個應用程序正在使用端口 3389(或分配的 RDP 端口),,請輸入以下命令:
PowerShellcmd /c 'tasklist /svc | find "<pid listening on 3389>"'
查找與該端口關(guān)聯(lián)的 PID 號條目(查看 netstat 輸出)。 右列會顯示與該 PID 關(guān)聯(lián)的服務或進程,。
如果除遠程桌面服務 (TermServ.exe) 以外的某個應用程序或服務正在使用該端口,,你可以使用以下方法之一來解決沖突:
- 將該應用程序或服務配置為使用其他端口(建議)。
- 卸載該應用程序或服務,。
- 將 RDP 配置為使用其他端口,,然后重啟“遠程桌面服務”服務(不建議),。
使用 psping 工具測試是否可以通過端口 3389 訪問受影響的計算機。
轉(zhuǎn)到另一臺不受影響的計算機,,從 https://live./psping.exe 下載 psping,。
以管理員身份打開命令提示符窗口,切換到安裝了 psping 的目錄,,然后輸入以下命令:
psping -accepteula <computer IP>:3389
在 psping 命令的輸出中檢查如下所示的結(jié)果:
- Connecting to <計算機 IP> :遠程計算機可訪問,。
- (0% loss) :所有連接嘗試均成功。
- The remote computer refused the network connection:遠程計算機不可訪問,。
- (100% loss) :所有連接嘗試均失敗,。
在多臺計算機上運行 psping,以測試它們是否能夠連接到受影響的計算機,。
請注意受影響的計算機是阻止了來自所有其他計算機的連接,、來自某些其他計算機的連接,還是僅來自其他一臺計算機的連接,。
建議的后續(xù)步驟:
- 咨詢網(wǎng)絡管理員,,驗證網(wǎng)絡是否允許 RDP 流量傳輸?shù)绞苡绊懙挠嬎銠C。
- 調(diào)查源計算機與受影響計算機之間的任何防火墻配置(包括受影響計算機上的 Windows 防火墻),,以確定防火墻是否正在阻止 RDP 端口,。