2008 R2 Remote Desktop Server driver RDPDR.sys cannot be started, error 577
问题一
=============
错误代码 577 意思是 ERROR_INVALID_IMAGE_HASH in winerror.h,
# Windows cannot verify the digital signature for this file.
# A recent hardware or software change might have installed a
# file that is signed incorrectly or damaged, or that might
# be malicious software from an unknown source.
# as an HRESULT: Severity: SUCCESS (0), FACILITY_NULL (0x0), Code 0x577
# for hex 0x577 / decimal 1399
事件日志中同样能找到类似的错误,
Application Popup Application popup:\SystemRoot\System32\Drivers\RDPWD.SYS failed to load
这个错误发生的原因是Windows操作系统在启动该驱动程序前,系统会先检查这个驱动文件的合法性,有效性等。检查的方法是找catroot下rdpdr对应的cat文件,并作对比。例如下面就是检查失败的例子(找不到对应的文件),
这也是驱动无法启动,并报577的直接原因。
问题一解决方法
===========
1. 从一台正常的操作系统上找到catroot下对应的cat文件并拷贝。注:必须确保两台机器的驱动文件版本一致。
2. 安装比目前驱动版本更高的Update。例如,在这个问题上,通过安装https://support.microsoft.com/en-sg/help/3125574/convenience-rollup-update-for-windows-7-sp1-and-windows-server-2008-r2-sp1解决问题。
问题二
=============
解决完驱动无法加载的问题后,问题还没有完全解决,尽管在Process Monitor的日志中我们看到了rdpdr.sys驱动已经被加载了。
还是通过检查Process Monitor的日志并于正常情况下的日志做对比,找到了错误如下,
同时在设备管理器中发现RDPDR device的缺失。
问题二解决方法
==========
从正常的机器上导出对应的注册表信息。然后在出问题的机器上用系统账号启动cmd.exe或者reg.exe直接导入注册表。
psexec.exe -s -i cmd.exe
reg.exe import filename.reg
提到的工具都能从Microsoft Sysinternal网站中下载到。