RDP Wrapper与Windows更新共存:如何避免升级后失效

RDP Wrapper与Windows更新共存:如何避免升级后失效

【免费下载链接】rdpwrap RDP Wrapper Library 【免费下载链接】rdpwrap 项目地址: https://gitcode.com/gh_mirrors/rd/rdpwrap

你是否遇到过这样的情况:Windows系统更新后,原本正常使用的RDP Wrapper突然失效,远程桌面连接功能无法使用?这是因为Windows更新会替换termsrv.dll文件,导致RDP Wrapper的补丁无法适配新版本。本文将详细介绍如何让RDP Wrapper与Windows更新和平共处,避免升级后失效的问题。

读完本文后,你将能够:

  • 了解RDP Wrapper的工作原理及Windows更新导致其失效的原因
  • 掌握手动更新RDP Wrapper配置文件的方法
  • 学会使用自动更新脚本保持RDP Wrapper与系统版本同步
  • 了解如何检查和诊断RDP Wrapper的运行状态

RDP Wrapper工作原理与更新冲突原因

RDP Wrapper Library是一个用于启用Windows家庭版和基础版系统远程桌面主机功能的工具。它通过包装Terminal Services(终端服务)API,使得不支持多用户远程桌面的Windows版本能够同时接受多个远程连接。

RDP Wrapper的核心配置文件是res/rdpwrap.ini,其中包含了针对不同版本termsrv.dll的补丁代码和偏移量信息。例如,对于Windows 10 10.0.10240.16386版本,配置文件中定义了如下补丁信息:

[10.0.10240.16384]
LocalOnlyPatch.x86=1
LocalOnlyOffset.x86=A7D38
LocalOnlyCode.x86=jmpshort
LocalOnlyPatch.x64=1
LocalOnlyOffset.x64=96901
LocalOnlyCode.x64=jmpshort
SingleUserPatch.x86=1
SingleUserOffset.x86=32A95
SingleUserCode.x86=nop
SingleUserPatch.x64=1
SingleUserOffset.x64=18F74
SingleUserCode.x64=Zero
DefPolicyPatch.x86=1
DefPolicyOffset.x86=2F5B9
DefPolicyCode.x86=CDefPolicy_Query_eax_ecx
DefPolicyPatch.x64=1
DefPolicyOffset.x64=22865
DefPolicyCode.x64=CDefPolicy_Query_eax_rcx
SLInitHook.x86=1
SLInitOffset.x86=46581
SLInitFunc.x86=New_CSLQuery_Initialize
SLInitHook.x64=1
SLInitOffset.x64=250F0
SLInitFunc.x64=New_CSLQuery_Initialize

当Windows更新时,通常会更新termsrv.dll文件以修复安全漏洞或添加新功能。新的termsrv.dll文件结构可能发生变化,导致原有的补丁偏移量失效,这就是RDP Wrapper在系统更新后无法工作的主要原因。

手动更新RDP Wrapper配置文件

当Windows更新导致RDP Wrapper失效时,手动更新配置文件是最直接的解决方法。以下是详细步骤:

  1. 确认当前termsrv.dll版本

    打开命令提示符,执行以下命令:

    wmic datafile where name="C:\\Windows\\System32\\termsrv.dll" get Version /value
    

    记录返回的版本号,例如10.0.19041.1288

  2. 更新rdpwrap.ini文件

    编辑res/rdpwrap.ini文件,添加或修改对应版本的配置段。配置段的名称就是termsrv.dll的版本号,例如[10.0.19041.1288]

    每个版本配置段需要包含以下关键信息:

    • LocalOnlyPatch:本地会话限制补丁开关
    • SingleUserPatch:单用户限制补丁开关
    • DefPolicyPatch:默认策略补丁开关
    • 各补丁对应的偏移量(Offset)和补丁代码(Code)

    具体的偏移量和补丁代码需要通过反汇编工具分析新的termsrv.dll文件获得,或从社区获取更新。

  3. 重启终端服务

    更新配置文件后,需要重启终端服务使更改生效:

    net stop TermService
    net start TermService
    

    如果终端服务无法停止,可能需要重启计算机。

使用自动更新工具保持配置同步

为了简化更新过程,RDP Wrapper提供了自动更新脚本,可以定期检查并更新配置文件。

  1. 运行更新脚本

    项目中提供的res/legacy.install.bat文件包含了安装和更新逻辑。运行该脚本的更新部分:

    @echo off
    echo [*] Checking for RDP Wrapper updates...
    if exist "update.bat" (
        call update.bat
    ) else (
        echo [-] Update script not found
    )
    
  2. 配置自动更新任务

    可以通过Windows任务计划程序创建定期执行更新脚本的任务:

    1. 打开"任务计划程序"
    2. 创建基本任务,设置触发器(如每周日凌晨3点)
    3. 操作选择"启动程序",浏览到update.bat文件
    4. 勾选"以最高权限运行"
  3. 离线更新方法

    如果计算机无法联网,可以手动下载最新的配置文件:

    1. 从项目仓库下载最新的res/rdpwrap.ini文件
    2. 替换本地安装目录中的对应文件
    3. 重启终端服务

预防措施:配置Windows更新排除项

为了从根本上避免Windows更新影响RDP Wrapper,可以配置Windows更新排除特定的更新:

  1. 使用组策略编辑器(专业版/企业版)

    1. 按下Win + R,输入gpedit.msc打开组策略编辑器
    2. 导航到"计算机配置 > 管理模板 > Windows组件 > Windows更新"
    3. 双击"配置自动更新",选择"已启用"
    4. 在"选项"中选择"2 - 通知下载并通知安装"
    5. 双击"不包括驱动程序与Windows更新",选择"已启用"
  2. 使用注册表编辑器(家庭版)

    1. 按下Win + R,输入regedit打开注册表编辑器
    2. 导航到HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate
    3. 创建或修改AUOptions值为2(十六进制)
    4. 创建或修改ExcludeWUDriversInQualityUpdate值为1(十六进制)
  3. 使用Wushowhide.diagcab工具

    1. 下载并运行Microsoft的"显示或隐藏更新"工具
    2. 选择可能影响远程桌面服务的更新
    3. 点击"隐藏更新"

故障诊断与恢复

当RDP Wrapper在Windows更新后失效时,可以按照以下步骤诊断和恢复:

  1. 检查RDP Wrapper状态

    运行RDPCheck.exe工具检查当前状态:

    • 如果显示"[not supported]",表示当前termsrv.dll版本不被支持
    • 如果显示"[not running]",表示RDP Wrapper服务未运行
  2. 查看日志文件

    RDP Wrapper会生成日志文件rdpwrap.txt,记录运行过程和错误信息。日志文件路径在res/rdpwrap.ini中定义:

    [Main]
    LogFile=\rdpwrap.txt
    
  3. 恢复原始配置

    如果更新配置后出现问题,可以恢复到之前的配置文件:

    copy /y rdpwrap.ini.bak rdpwrap.ini
    net stop TermService
    net start TermService
    
  4. 使用诊断工具

    RDP Wrapper提供了配置工具RDPConf.exe,可以图形化方式查看状态和配置:

    • 查看"Service State"确认服务是否运行
    • 检查"Support Status"确认当前版本是否支持
    • 使用"Diagnostics"按钮运行自动诊断

总结与最佳实践

为了确保RDP Wrapper与Windows更新长期共存,建议遵循以下最佳实践:

  1. 定期更新配置文件:至少每月检查一次更新,或在Windows更新后立即检查
  2. 创建系统还原点:在安装Windows更新前创建还原点,以便出现问题时快速恢复
  3. 关注官方更新:定期查看RDP Wrapper项目的更新和公告
  4. 参与社区讨论:遇到新版本兼容性问题时,在项目的issues页面报告
  5. 备份配置文件:每次更新前备份rdpwrap.ini文件,以便回滚

通过以上方法,可以最大限度地减少Windows更新对RDP Wrapper的影响,保持远程桌面功能的持续可用。记住,配置文件res/rdpwrap.ini是RDP Wrapper的核心,保持其最新是确保兼容性的关键。

如果您在使用过程中遇到问题,可以查阅项目文档或在社区寻求帮助。RDP Wrapper的持续维护离不开用户的积极反馈和贡献。

【免费下载链接】rdpwrap RDP Wrapper Library 【免费下载链接】rdpwrap 项目地址: https://gitcode.com/gh_mirrors/rd/rdpwrap

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值