本周三(感谢微软星期二)重启我的工作电脑(Windows XP SP3)后,我发现无法从家里远程桌面到我的工作电脑(通过 VPN 到公司)。我已经使用远程桌面工作多年了,我真的很惊讶,因为连接不是问题,所以我打开了 wireshark 来嗅探数据包。
我可以看到 TCP 握手后,客户端发送了 X.224 连接请求 03 00 00 13 0e e0 00 00 00 00 00 01 00 08 00 03 00 00 00
服务器发送 X.224 连接确认。03 00 00 0b 06 d0 00 00 12 34 00
根据 RDP 官方规范“MS-RDPBCGR”,服务器应该在“连接确认”消息中包含协商响应,但服务器并没有这样做。它是空的。
我用 Google 搜索了很多次,但没有找到任何关于服务器为什么这样做的线索。
顺便说一句,我使用了相同的远程桌面客户端,可以连接到其他 Windows XP PC。
以下几条信息或许能提供线索:
- 由于 TCP 握手(服务器端口为 3389),我相信 svchost 服务实际上正在运行。
- 转到控制面板-->系统窗口--->“远程”选项卡,远程桌面确实被检查并且它表明我的用户名是被允许的。
- 根据数据包捕获,客户端甚至没有机会告诉服务器哪个用户正在尝试登录。
- 是的,进度条出现了几秒钟,然后它又回到了“远程桌面连接”窗口。
- 搜索“windowsupdate.log”,没有发现任何“remote”字样。
答案1
问题已解决。
以下是发生的事情。
我将系统还原到上周二 Windows 更新之前的状态,但问题仍未得到解决。
我在事件查看器中注意到以下错误:
应用程序弹出:\SystemRoot\System32\RDPDD.dll 加载失败
并开始在谷歌上搜索“RDPDD.dll 加载失败”,得到了一堆提示/技巧,我做了如下更改。
- 将 ATI(显示)驱动程序升级到最新版本并重新启动电脑,但没有帮助。
- 通过regedit,增加内存管理的大小为64MB:[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management] 远程桌面问题仍然存在。
然后我想我可能需要重启电脑才能使增加的内存生效。重启时,电脑给我一个建议“安装 Windows 更新并关机”,我照做了。
我等待它完成更新并关闭,然后启动电脑。现在远程桌面可以正常工作了。
由于有很多变量发生了变化,很难判断哪个变量对解决方案做出了贡献。我猜要么增加内存,要么重新进行 Windows 更新。
谢谢,金
答案2
最好退一步看看工作站上的 Windows 设置。如果启用了远程注册表编辑,您可以在这篇 Technet 文章从家里。
如果看起来没问题,我会运行netstat -aon | find "3389"
并确保它正在运行,其次确保任务管理器中的进程 ID 是 svchost.exe 而不是其他进程。
最后,如果您确定是更新导致了此问题,您可以检查 windowsupdate.log(开始 -> 运行 windowsupdate.log)并查看周二安装的更新是否会影响远程桌面和 Google 的 KB ID 和“远程桌面”。