关于远程桌面连接出现的“0x507”错误

尝试从办公室的Window XP (SP3)连接到我家里的Windows Server 2008时,遇到了“不支持网络级别身份验证”的错误。网上查了一下,发现是一个很普遍的问题,解决方法有两种,关闭服务器端的NLA强制策略,或者在Windows XP中激活NLA(Network Level Authentication)的支持。前一种方案显然就违背了NLA的设计初衷,使Server暴露在被攻击风险下。所以,非到万不得已,不应采用。OK,那么就在XP下配置NLA。

看起来很容易处理的一个问题,可惜到我手里就出现新问题了。按照官方描述的步骤操作后,再次打开远程桌面的客户端,从“关于”信息中已经可以看到“支持网络级别的身份验证”的提示了。这次连接Windows Server 2008,终于弹出了NLA认证窗口,可是在我输入账号密码后却又无情的弹出一个“发生身份验证错误(代码:0x507)”。再去网上搜索,发现相关的信息就很少了,而且似乎也都没有可用的解决方法。不甘心就这样在最后关节上失败,但折腾很久,尝试了无数种猜想后,仍旧无法逾越这道难关。就在我几乎打算放弃的时候,一个偶然的死机让这个问题奇迹般的消失了。

回想这个过程,才恍然大悟,原来问题出在我漏掉了官方操作说明中的最后一个步骤——“重启电脑”。究其原因,还是被远程桌面客户端的关于提示变成“支持网络级别的身份验证”这一假象给欺骗了。其实,当完成注册表修改后,相关的动态库并未被加载,虽然远程桌面客户端通过读取注册表判断NLA已经配置,但事实上并不能成功完成NLA认证。

但愿有遇到同样问题的朋友能从这里吸取我的教训,别再被微软的bug给误导,浪费宝贵的时间了。

Written on October 10, 2008