windows远程桌面《出现了内部错误》终极解决方案!
但是在写软件之前,我搜遍中外全网,在充斥着99%无用内容的搜索引擎里终于找到了解决方案。
之前有说到本人是做运维的,这个问题很棘手,有些重病患者一天要重启好几次服务器,我从这些临床用户的服务器下手,给用户介绍了这个方法,好几个经常出现此问题的服务器,在最近一周都没出现问题了,效果非常好,所以分享到LOC来。
【解决方案】
在被远程桌面的服务器或电脑里,打开 “运行” — 输入: gpedit.msc 回车,找到 计算机配置–管理模板–windows组件—远程桌面服务–远程桌面会话主机–安全– 找到 “远程(RDP)链接要求使用制定的安全层” — 已启用 — 安全层选择:RDP
以下设置基于 Windows Server 2022
另存为 rdp.reg 双击导入注册表。
Security Layer 0 – With a low security level, the remote desktop protocol is used by the client for authentication prior to a remote desktop connection being established. Use this setting if you are working in an isolated environment.
Security Layer 1 – With a medium security level, the server and client negotiate the method for authentication prior to a Remote Desktop connection being established. As this is the default value, use this setting only if all your machines are running Windows.
Security Layer 2- With a high security level, Transport Layer Security, better knows as TLS is used by the server and client for authentication prior to a remote desktop connection being established. We recommend using this setting for maximum security.
https://admx.help/?Category=Windows_10_2016&Policy=Microsoft.Policies.TerminalServer::TS_SECURITY_LAYER_POLICY
此策略设置指定是否需要使用一个特定的安全层在远程桌面协议(RDP)连接期间保护的客户端和 RD 会话主机服务器之间的通信。
如果启用此策略设置,客户端和 RD 会话主机服务器的远程连接期间的所有通信都必须都使用此设置中指定的安全方法。可用的是下列安全方法:
* 协商: 协商方法强制执行的客户端程序支持的最安全方法。如果支持传输层安全(TLS)版本 1.0,它用于 RD 会话主机服务器验证身份。如果不支持 TLS,本地远程桌面协议(RDP)加密用于安全通信,但 RD 会话主机服务器尚未进行身份验证。
* RDP: RDP 方法使用本机 RDP 加密安全客户端和 RD 会话主机服务器之间的通信。如果选择此设置,RD 会话主机服务器未通过身份验证。
* SSL: SSL 方法要求使用 TLS 1.0 对会话主机服务器进行身份验证。如果不支持 TLS,则连接将失败。
如果你禁用或未配置此策略设置,在组策略级别未指定要用于远程连接到 RD 会话主机服务器的安全方法。
https://support.ncomputing.com/portal/en/kb/articles/windows-10-rdp-issue-unable-to-rdp-to-windows-10-machine-after-latest-build-10074
In Windows 10 and 8.1 Microsoft changed RDP’s defaults. They modified the default for “SecurityLayer” from 0 to 2. Even if you go into the user interface and disable: “Allow connections only from computers running Remote Desktop with Network Level Authentication (recommended)” Still doesn’t change that value to a 0.
Simple fix:
Open RegEdit
Navigate to this Key:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
Change “SecurityLayer” to a zero
Reboot
https://docs.microsoft.com/en-us/windows-hardware/customize/desktop/unattend/microsoft-windows-terminalservices-rdp-winstationextensions-securitylayer
0
Specifies that the Microsoft Remote Desktop Protocol (RDP) is used by the server and the client for authentication before a remote desktop connection is established. RDP is a Microsoft protocol that supports terminal services across heterogeneous network environments.
1
Specifies that the server and the client negotiate the method for authentication before a remote desktop connection is established. This is the default value.
2
Specifies that the Transport Layer Security (TLS) protocol is used by the server and the client for authentication before a remote desktop connection is established.
https://docs.microsoft.com/zh-cn/windows-hardware/customize/desktop/unattend/microsoft-windows-terminalservices-rdp-winstationextensions-securitylayer
0
指定 Microsoft 远程桌面协议 (RDP) 用于服务器和客户端身份验证之前建立的远程桌面连接。 RDP 是跨异构网络环境中支持终端服务的 Microsoft 协议。
1
指定在服务器和客户端协商身份验证的方法之前建立的远程桌面连接。 这是默认值。
2
指定传输层安全性 (TLS) 协议用于服务器和客户端身份验证之前建立的远程桌面连接。