阿国运维网技术分享平台:桌面运维、网络运维、系统运维、服务器运维(及云服务器),精品软件分享、阿国网络、尽在北京运维网
本文有助于排查连接到远程计算机时出现“内部错误已发生”错误的问题。
使用直接远程桌面协议(RDP)连接连接到 Windows 计算机时,连接失败并出现“内部错误”错误。 此错误发生在远程桌面连接应用程序上输入凭据之前或之后。
备注
如果连接在出现错误前最多停止响应一分钟,然后在第二次尝试时成功,原因可能是打开音频以检索设置的容量。
在这种情况下,阻止调用会阻止客户端将所需信息发送到服务器。 大约一分钟后,连接会成功,因为远程计算机重置了连接。
若要解决此问题,请根据需要在远程计算机上禁用 Windows 音频服务,并根据需要在源计算机上禁用 Windows 音频服务。
验证错误是否与网络相关
使用以下步骤检查是否可以通过 Web 控制台连接到服务器(例如 Hyper-V):
在“运行”框中键入 mstsc。
在远程桌面连接应用程序中,在“计算机”框中键入 localhost,然后选择“连接”。
如果错误不再发生,则它与网络相关。 请联系Microsoft 支持部门获取进一步帮助。
如果错误仍然存在,则服务器出现问题。 转到下一个故障排除步骤。
验证错误是否与加密协商相关
当源计算机和目标计算机协商安全协议、密码或其他加密配置时,通常会出现问题。 若要验证错误是否与加密协商相关,请运行以下命令来调整 UserAuthentication
受影响计算机上的值和 SecurityLayer
值 0
:
重要
此部分(或称方法或任务)介绍了修改注册表的步骤。 但是,注册表修改不当可能会出现严重问题。 因此,按以下步骤操作时请务必谨慎。 若要进行保护,请先备份注册表,然后再对其进行修改,以便在出现问题时还原它。 有关如何备份和还原注册表的详细信息,请参阅:如何备份和还原 Windows 中的注册表。
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v SecurityLayer /t REG_DWORD /d 0 /freg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v UserAuthentication /t REG_DWORD /d 0 /f
重要
在故障排除会话结束时,使用以下命令将这些设置配置为建议的值:
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v SecurityLayer /t REG_DWORD /d 2 /freg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v UserAuthentication /t REG_DWORD /d 1 /f
如果在运行命令后可以连接到远程计算机,则问题可能与以下任一问题相关:
远程桌面自签名证书的续订
安全协议协商
若要缩小可能的原因范围,请按照以下步骤检查是否可以重新创建远程桌面自签名证书:
打开“证书”Microsoft管理控制台(MMC)管理单元。 当系统提示你选择要管理的证书存储时,请选择 “计算机帐户”,然后选择受影响的计算机。
在“远程桌面”下的“证书”文件夹中,删除 RDP 自签名证书。
在受影响的计算机上重启远程桌面服务服务。
刷新“证书”管理单元。
如果未重新创建 RDP 自签名证书,请转到 远程桌面自签名证书。
如果已重新创建 RDP 自签名证书,请转到 安全协议协商。
远程桌面自签名证书
如果此问题与远程桌面自签名证书的续订相关,请使用以下方法来排查该问题。
检查注册表配置
打开注册表编辑器并确保按如下所示设置这些键:
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations
值SelfSignedCertStore
名称具有Remote Desktop
值数据。Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
值ProgramData
名称具有%SystemDrive%\ProgramData
值数据。
检查服务
确保以下服务正在运行,因为它们需要生成证书:
证书传播服务 (CertPropSvc)
CNG 密钥隔离服务 (KeyIso)
加密服务 (CryptSvc)
远程桌面配置服务 (SessionEnv)
备注
如果上述任何服务无法启动,请检查其是否与服务控制管理器源中的系统事件日志的依赖项存在问题。
检查 MachineKeys 权限
转到 受影响的计算机上的 C:\ProgramData\Microsoft\Crypto\RSA\ 。
右键单击 MachineKeys,然后选择“属性>安全性>高级”。
确保仅配置以下权限:
Builtin\Administrators: 完全控制
每个人: 读取、 写入
重启远程桌面服务服务并确认证书已重新创建。
检查 RDP 计算机密钥的权限
转到 受影响的计算机上的 C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys 。
右键单击从 f686aace6942fb7f7ceb231212eef4a4 开始的密钥,然后选择“属性>安全>高级”。
将 所有者 更改为具有计算机管理权限的人员。
关闭并重新打开 “高级安全设置” 窗口。
确保仅配置以下权限:
主体 类型 Access 继承自 NETWORK SERVICE 允许 读取 无 系统 允许 完全控制 无 重启远程桌面服务服务并确认证书已重新创建。
请联系 Microsoft 支持
如果上述步骤无法解决问题,请联系Microsoft 支持部门以获取进一步帮助。
安全协议协商
如果问题与安全协议协商有关,请使用以下方法来排查该问题。
检查注册表配置
检查以下注册表项:
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
检查值是否存在以及值数据是否
SSLCertificateSHA1HashValue
与指纹值匹配。 可以在 certlm.msc 控制台中远程桌面>证书下的证书的“详细信息”选项卡中找到指纹值。 如果它们不匹配,请删除SSLCertificateSHA1HashValue
该值,重启系统,然后再次测试。重要
如果服务器安装了远程桌面连接代理角色,请不要应用此步骤。
确保该值
fAllowSecProtocolNegotiation
设置为 1。确保该值
MinEncryptionLevel
设置为 3。 有关详细信息,请参阅 加密级别。
检查 SSL 密码套件顺序策略的配置
检查是否存在 用于配置密码的策略。 将以下策略设置设置为 “未配置 ”(如果存在):
计算机配置>管理模板>网络>SSL 配置设置 - SSL 密码套件顺序
备注
将策略设置为“ 未配置”后,如果存在,请删除以下注册表值:Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Cryptography\Configuration\SSL\00010002
- Functions
。
替换 SCHANNEL 子项
在同一 Windows 版本正常运行的计算机上导出以下子项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL
备份受影响计算机上的现有密钥。 然后,将其删除,并将其替换为从正常运行的计算机导出的子项。
替换加密 SSL 子项
在同一 Windows 版本正常运行的计算机上导出以下子项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Cryptography\Configuration\Local\SSL\00010002
备份受影响计算机上的现有密钥。 然后,将其删除,并将其替换为从正常运行的计算机导出的子项。