我把一个周二上午的大部分时间都花在看一位 IT 管理员尝试访问一台就放在离他仅 20 英尺远的 Windows Server 上。他的笔记本电脑不停地抛出同样的错误:This computer can’t connect to the remote computer. Error code: 0x904.”
更让人沮丧的是?他连接其他服务器一切正常。
如果你也在处理这个错误,简要版如下:它通常由 RDP 证书过期、证书存储损坏(尤其是在 Azure 虚拟机上)Windows 11 兼容性问题或防火墙配置错误引起。最常见的修复方法是在你的服务器上续订已过期的自签名证书。对于 Azure 虚拟机,重命名 MachineKeys 文件夹可以解决证书损坏问题。
我已经测试了这些修复,并翻阅了许多论坛帖子,那里有真正的 IT 专业人士记录了 2025 年实际有效的方法。以下是你需要知道的一切。
解决方案 1:修复已过期的 RDP 证书
经过数周的排障,一位 Reddit 上的系统管理员终于找到了问题根源。根本原因是用于 RDP 的自签名证书已过期且不会自动续订。
这也解释了为何错误只影响某些服务器,而不是同一网络中的所有服务器。每台服务器都有自己的证书,当证书过期时,RDP 连接会以错误 0x904 失败。
解决方法如下:
- 在本地或通过其他远程访问方式登录受影响的服务器。
- 按 Win + R 并输入 certlm.msc,打开证书 MMC 管理单元。
- 导航到 Personal > Certificates 或 Remote Desktop > Certificates。
- 查找 Remote Desktop 证书并检查其到期日期。
- 如果已过期,右键单击并删除旧证书。
- 通过以管理员身份打开命令提示符并运行:restart-service termserv -force,重启远程桌面服务。
- Windows 将自动生成新的自签名证书。
Reddit 讨论帖中有多位用户在发现其 RDP 证书过期后确认该方法有效。一位管理员指出,这尤其令人困惑,因为在到期之前不会触发任何警告。另一位后来看到该帖的用户评论道:”这正是我的情况。谢谢提供链接!”
该证书问题在多年未维护的服务器上尤为常见。Windows 通常会自动重新创建已过期的证书,但有时 MachineKeys 文件夹的权限问题会阻止此过程。
解决方案 2:修复 Azure 虚拟机上的证书损坏
如果您正在连接到 Azure 虚拟机,存在一个特定的证书损坏问题会导致错误 0x904。一位 IT 专业人士记录了这一修复方法,在发现其 Azure 虚拟机上所有与证书相关的操作都在报错之后。
问题源于损坏的证书存储,导致 RDP 无法创建新的自签名证书。修复方法出奇地简单:
- 通过 Azure 门户访问您的 Azure 虚拟机。
- 进入您的虚拟机并选择 “Run command”,然后选择 “RunPowerShellScript”。
- 输入此命令:
Rename-Item -path "C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys" -NewName "MachineKeys_old" - 重启服务器。
重启后,Windows 会创建一个全新的 MachineKeys 文件夹并包含干净的证书。发现该解决方案的管理员在 Azure 控制台上排查了数小时才发现证书相关操作一直失败。一旦他们重命名了 MachineKeys 文件夹并重启,RDP 连接便立即恢复正常。
对于非 Azure 的机器且您拥有直接访问权限的情况,您可以在本地以管理员身份运行此 PowerShell 命令并重启。此方法适用于任何出现证书存储损坏的 Windows Server,而不仅限于 Azure 虚拟机。
解决方案 3: Windows 11 兼容性变通方法
Windows 11 引入了一些与 RDP 的兼容性问题,特别影响 22H2 及之后的版本。微软支持发现,使用服务器的 IP 地址而不是主机名,对许多用户来说可以规避该问题。
这似乎是 Windows 11 在处理 RDP 连接的主机名解析方式上的一个缺陷。变通方法很简单:
- 找到远程计算机的 IP 地址(询问你的网络管理员,或在远程计算机上运行
ipconfig) - 在 Remote Desktop Connection 中,输入类似 192.168.1.100 的 IP 地址,而不是计算机名称。
- 照常连接。
如果这仍然不起作用,微软建议使用 Windows 商店中的 RDP 应用,而不是内置的 Remote Desktop Connection。一位名为 Elise 的微软支持工程师证实了这一点:”The RDP client app from the Microsoft Store appears to be unaffected by this issue.”
商店版本使用略有不同的网络代码,通常可以绕过导致 Windows 11 中 0x904 错误的原因。如果你正在连接要求使用主机名而非 IP 地址的 AWS IAM 服务器,这一点尤其有帮助。
解决方案 4:正确配置防火墙设置
即便你以为已放行,Windows Defender 防火墙有时也会阻止 RDP。我见过经验丰富的管理员因此栽跟头,他们坚称自己把一切都配置正确了。
以下是实际有效的完整防火墙配置:
-
按 Win + S 并键入 “允许应用通过 Windows 防火墙.”
-
单击“更改设置”需要管理员权限)
-
在专用和公用网络中同时勾选远程桌面和远程桌面 (WebSocket)。
-
单击“允许其他应用”然后单击“浏览”
-
导航到 C:\Windows\System32\mstsc.exe 并选择它。
-
点击 Add,并确保 Private 和 Public 两个复选框都已勾选。
-
点击“确定”
在客户端计算机和远程服务器上都执行此操作。关键在于,哪怕单个设置配置错误,也可能导致连接失败并出现错误 0x904。
在某些情况下,您还需要确认 3389 端口已开放。您可以在 PowerShell 中进行测试:
Test-NetConnection [server_name] -Port 3389。如果连接测试失败,说明您的防火墙正在阻止 RDP 流量。在最初的故障排查帖中,有一位 Reddit 用户曾尝试在其受影响的其中一台服务器上完全禁用防火墙,但并未奏效。这表明,防火墙相关的修复与其他解决方案配合使用效果最佳,尤其是在还存在证书问题的情况下。
为什么 HelpWire 是明智之选
看着 IT 专业人士花上数小时排查 RDP 错误,我明白了为何许多人正转向专用的远程支持工具。HelpWire 完全规避了这些证书过期问题,因为它并不依赖 Windows 的远程桌面协议。
对于 IT 支持技术人员和 MSP 来说,可靠性比什么都重要。当你在帮助客户排查他们的电脑问题时,你无法在修复连接方式上先花 30 分钟,然后才去处理他们的实际问题。
HelpWire 可在不同的 Windows 版本上运行,而不会带来兼容性方面的烦恼。没有会过期的证书、没有组策略冲突,也不必绕开 Windows 11 的各种怪癖。它专为需要持续、可靠访问的远程支持场景而设计。
结论
先从证书修复入手。这是大多数处理 0x904 错误的 IT 管理员的解决办法。检查你的 RDP 证书是否已过期,删除它,重启远程桌面服务,让 Windows 生成一个新的证书。
如果你在 Azure 上,修复 MachineKeys 文件夹通常最有效。对于遇到问题的 Windows 11 用户,尝试通过 IP 地址连接,或使用 Microsoft Store 版 RDP 应用程序。别忘了检查连接两端的防火墙设置。
这个错误看起来随机,是因为证书会在后台静默过期。你可能几个月都能正常使用 RDP 连接,但当证书过期时却会突然遇到 0x904。现在你知道该检查什么了。
常见问题
错误 0x904 表示你的计算机无法与远程计算机建立远程桌面连接。它通常会伴随扩展错误代码 0x7 一起出现,最常见的原因是服务器上的 RDP 证书已过期。证书存储损坏(尤其是在 Azure 虚拟机上)Windows 11 兼容性问题或防火墙配置错误也可能触发此错误。
是的,像 HelpWire 这样的专用远程支持工具使用与 Windows RDP 不同的连接协议,因此不会遇到 0x904 错误,也无需处理证书过期问题。不过,如果你使用的是对 RDP 连接进行隧道转发的工具(如 RustDesk)仍可能会遇到该错误。完全绕过 RDP 的工具在提供稳定的远程访问方面更可靠,也不会出现与证书相关的问题。