如果你接手过一台装了 Windows Server 2019 的服务器并且被“远程桌面里的 Solidworks 卡成幻灯片”这件事折磨过那你应该能理解我写这篇笔记的动机。事情通常是这样的设计团队要远程打开 Solidworks 干活管理员在一台 Windows Server 2019 上装好了远程桌面服务RDS用户通过 RDP 也能成功连上服务器了结果一启动 Solidworks界面卡顿、旋转模型掉帧打开任务管理器看 GPU 占用始终是 0%甚至隔一段时间还弹出“GPU 发生崩溃或 D3D 设备已移除”的报错。这其实就是 RDS 环境里最经典的“远程桌面能连但 GPU 没被真正用上”的问题。这篇文章会把整套流程串起来讲透Windows Server 2019 上怎么正确创建 RDS、怎么激活远程桌面服务许可证这是最容易踩坑的一步、以及配置 RDP 让 Solidworks 尽可能吃上 GPU 加速的具体方法。适合正在搭建或维护远程设计工作站的 IT 管理员、系统运维也包括自己买了服务器想折腾的独立技术人。你不需要是微软认证专家跟着章节一步步走至少能在遇到问题时知道该去哪一层排查。1. RDS 的角色拆分以及 Server 2019 上 GPU 远程化的历史变迁在动手安装之前先把 RDS 的架构说清楚否则你很容易装出一堆用不上的组件后面排错也找不到方向。RDSRemote Desktop Services不是一个单一角色而是一组角色的集合。在一台服务器上你最常见到的是下面这几个角色服务远程桌面会话主机RD Session Host核心中的核心它负责接受 RDP 连接并且为每个用户创建独立的 Windows 会话。用户连上来后看到的桌面其实就是这个角色撑起来的。远程桌面连接代理RD Connection Broker用于负载均衡和会话重新连接在有多台会话主机的场景下才需要。单服务器环境基本可以不装。远程桌面 Web 访问RD Web Access提供一个网页入口让用户通过浏览器启动远程桌面。对于内部网络直接用 mstsc 连的情况这个角色是多余的。远程桌面许可RD Licensing管理 RDS 客户端访问许可证CAL没有它服务器在宽限期之后会拒绝新连接。远程桌面网关RD Gateway用于穿透外部网络相当于 RDP 的流量代理。只有在需要从公网接入时才考虑。小型项目里通常只需要“会话主机 许可”两个角色就够了。很多人一上来就在服务器管理器里把全部角色勾上结果装完发现一堆服务没人用还增加了被攻击的风险。单机部署就按单机的逻辑来别贪多。不过这里有一个更关键的历史背景它直接决定了你在 Server 2019 上折腾 GPU 的方式。老一代管理员可能还记得 Windows Server 2012 R2 时代风靡一时的RemoteFX vGPU。那套方案可以在 Hyper-V 虚拟机里虚拟出 GPU 实例把显卡能力直接透传给远程会话Solidworks 这类重度 OpenGL 应用在远程桌面里确实能跑出硬件加速效果。但祸根早在 2014 年左右就埋下了RemoteFX 存在安全缺陷微软在后续安全更新里逐步封禁。到了 Windows Server 2016RemoteFX vGPU 已被标记为弃用而Windows Server 2019 干脆彻底移除了 RemoteFX vGPU。这意味着什么意味着你不能再用老教程里“启用 RemoteFX”的方式让 RDP 会话访问 GPU。Server 2019 上你需要走新的图形栈也就是基于 WDDM 驱动的远程图形支持。这也解释了一个现象为什么很多从 2012 R2 时代迁移上来的老服务器到 2019 上远程显卡配置突然就“不灵了”。下面是当前环境下几种可选方向的真实对比先看表格再选路比盲目折腾省时间方案Server 2019 支持情况RDP 会话中的 GPU 加速适用场景RemoteFX vGPU不支持已移除完全不可用旧教程、旧环境直接放弃物理 GPU 官方服务器驱动支持但需要配合组策略/注册表部分可用取决于驱动和显卡单机少量用户低成本尝鲜NVIDIA vGPU / RTX vWS 虚拟化驱动官方正式支持可用且针对 RDS 多会话优化正经的远程设计工作站多人并发DDA 直通给 Hyper-V 虚拟机支持虚拟机本地控制台可用但 RDP 会话仍受限偏虚拟化场景不建议作为纯 RDS 方案所以如果你的诉求是“让 Solidworks 在 RDP 远程会话里顺畅旋转大型装配体”我给你的第一句建议是先把预算和硬件方向定在 NVIDIA vGPU 或类似企业级方案上消费级 GeForce 显卡在服务器上虽然能装驱动但远程会话里能不能真正吃到 GPU存在很大不确定性。当然物理 GPU 官方驱动这条路也不是完全走不通后面第 4 节我会把可复现的配置步骤写出来你至少能验证你的硬件到底行不行。2. 从零搭建 RDS 会话主机服务器管理器与 PowerShell 双路径这一步相当基础但很多人会在角色选择上翻车。我见过有人把“远程桌面服务”整个勾上然后系统提示要装连接代理、Web 访问等一堆东西装完一脸懵。单服务器环境只需要装“远程桌面会话主机”。下面分图形界面和命令行两条路走你自己选。2.1 安装前的准备项服务器要有固定 IP 和正确的主机名DNS 记录保持干净。如果后面要配许可证服务器主机名和 IP 变动会带来额外麻烦。时间要和域控或公网时间源同步。RDS 许可证对时间非常敏感时间偏移超过 5 分钟激活可能直接失败。如果环境里有域建议把服务器先加域。加域后用户管理、许可证归属都会顺畅很多。工作组模式也能跑但权限管理会让你怀疑人生。防火墙至少要放行 TCP 3389。如果你额外开了 RD 网关那还要放行 443但咱们单机场景先不碰。2.2 图形界面安装打开服务器管理器点击“添加角色和功能”一路下一步到“选择服务器角色”勾选“远程桌面服务”。这一步不会直接安装服务它会让你继续选择“角色服务”这时候只勾“远程桌面会话主机”即可。之后系统会提示是否需要重启确认后开始安装。整个过程大约 510 分钟取决于你的网络和服务器配置。安装完成后服务器会要求重启重启后会话主机角色就已经生效了。2.3 PowerShell 安装不想在向导里点点点的直接以管理员身份打开 PowerShell执行Install-WindowsFeature -Name RDS-RD-Server -IncludeManagementTools-IncludeManagementTools会把图形化管理工具一并装上后续管理许可和会话都会用到。装完重启Restart-Computer确认角色状态Get-WindowsFeature -Name RDS-RD-Server如果Install State显示Installed就成功了。2.4 把用户加入远程桌面用户组角色装完并不意味着任何用户都能连。你需要把允许远程登录的用户加入本地组Remote Desktop Users。如果你已经在域环境里建议用域用户net localgroup Remote Desktop Users CONTOSO\designer1 /add如果想把整个“设计部”安全组都加进来net localgroup Remote Desktop Users CONTOSO\design-team /add这一步经常被忽略结果用户用 mstsc 一连直接看到“用户没有通过身份验证”或者“账号未被授权远程登录”的提示。别慌先回来看看这个组里有没有人。2.5 验证会话主机是否可用在一台 Windows 10/11 工作站上打开“远程桌面连接”mstsc输入服务器 IP 或主机名用刚才授权的账号登录。如果能正常看到桌面说明会话主机已经工作。此时服务器默认允许的并发 RDP 连接数已经被角色扩展不再是最初的 2 个管理员会话具体上限由后面的许可证决定。3. 许可证激活是 RDS 项目里最容易被“后置”的环节如果说角色安装是 10 分钟的事那许可证激活才是真正决定项目成败的环节。很多管理员在装完 RDS 会话主机后发现用户能用就把许可证的事抛在脑后了。直到某天所有用户登录时收到“由于没有远程桌面授权服务器可以提供许可证远程会话被中断”的报错才回头补救。这里先解释一下为什么这么容易踩坑Windows Server 2019 的 RDS 内置了一个120 天宽限期Grace Period。在这 120 天之内即使你没有配置任何许可证服务器用户照样能建立远程会话系统也不会给出太显眼的警告。很多测试环境、临时项目就在这个窗口期里蒙混过关。但 120 天一过如果许可证服务器没激活或者许可证数量不够服务器会直接拒绝新的会话请求已经在线的会话也可能被强制断开。我自己就被这事坑过一次部署完 RDS 后跑了一个半月测试觉得一切正常结果第 121 天早上设计群里全部人开始哀嚎连不上。所以我现在对上线的服务器第一时间做的就是激活许可绝不拖到宽限期快结束才处理。3.1 安装 RD 许可角色如果当初你没装许可证角色现在补上Install-WindowsFeature -Name RDS-Licensing -IncludeManagementTools安装完成后重启一次。这个角色可以装在同一台会话主机上也可以单独装一台专用许可服务器。中小型环境装在一起就行但建议给许可证服务器一个固定的、不会轻易重装的主机名。3.2 激活许可证服务器在服务器管理器里打开“工具 → 远程桌面服务 → 远程桌面许可管理器”。找到你的服务器节点右键 → “激活服务器”。向导会让你选择连接方式Web 浏览器方式通过微软网站激活适合服务器能访问外网的场景。电话方式需要给微软激活中心打电话输入产品 ID 换取确认 ID。适合公网访问受限的内网环境。按向导填写公司信息后系统会返回一个许可证服务器 IDLicense Server ID。这个 ID 就是激活成功的凭证务必记录保存。激活完成后许可管理器中该服务器的状态应该变为“已激活”。3.3 安装 RDS CAL 许可证许可证服务器激活后还需要安装实际的 RDS CAL客户端访问许可证。右键已激活的许可服务器 → “安装许可证”。向导会让你选择许可计划常见的有Open License开放式许可输入授权编号和附加编号。Enterprise Agreement企业协议输入协议编号。Retail零售适用于直接购买的独立许可证包。接下来是选择许可证类型和数量。这里必须先弄明白你买的到底是Per User还是Per Device两种模式差别很大许可模式怎么算适合场景典型坑Per User按用户账号算同一个用户无论从哪台设备登录都只占用 1 个 CAL固定员工、固定账号的设计团队用户数可能远超并发数买少了不够买多了浪费Per Device按设备算一台电脑无论登录多少用户只占用 1 个 CAL共享工位、轮班制环境移动办公用户换设备登录时会额外消耗 CAL对于设计团队这种“人少、固定、每个人都要用自己的账号在远程会话里干活”的场景绝大多数情况下选Per User更贴合。如果实际采购是并发模式例如按同时在线人数购买的 RDS CAL则根据协议要求选择对应类型。计算数量时建议按“并发峰值 10% 余量”来买不要按“用户总数”来买。Per User CAL 是以用户账号为对象发放的用户只要被分配过 CAL这个位置就会被占住。如果是 50 个账号但并发最多 30 人按 50 个买就是纯浪费钱。3.4 指定许可证服务器和许可模式许可证服务器激活并安装了 CAL最后一步是让会话主机知道“该去找谁要许可证”。有两种配置途径。一种是图形化服务器管理器 → 远程桌面服务 → 部署概述 → “部署属性” → “许可”在这里选择“按用户”或“按设备”然后填写许可证服务器地址。另一种是走组策略适合多台会话主机统一管理打开gpedit.msc进入“计算机配置 → 管理模板 → Windows 组件 → 远程桌面服务 → 远程桌面会话主机 → 许可”。启用“设置远程桌面授权模式”选择与购买一致的许可模式。启用“使用指定的远程桌面许可证服务器”填入许可证服务器的 FQDN。如果在域环境里域组策略会覆盖本地配置所以如果你发现本机改了没用去检查一下域策略是不是压住了。3.5 快速验证授权是否正常在“远程桌面许可管理器”中确认许可证服务器状态为“已激活”并且已安装的 CAL 数量大于并发会话数。打开“事件查看器 → 应用程序和服务日志 → Microsoft → Windows → TerminalServices-RemoteConnectionManager”如果能看到事件 ID 4105说明授权正常。更直接的测试用两个不同用户同时远程登录观察是否出现“远程桌面授权已过期”之类的弹窗。没有弹窗说明这条路已经走通了。这里再多说一句许可问题不一定都是“没激活”造成的。比如Windows Server 2019 本身如果没激活不是指 RDS 许可证而是系统操作系统没激活RDS 授权也可能被一并影响表现就是许可证状态一直“未激活”。所以排查授权问题时先确认操作系统本身已经是激活状态再去看 RDS 授权。4. 让 Solidworks 在远程会话里吃上 GPU四步走配置现在终于到了很多人真正关心的部分怎么让 RDP 会话里的 Solidworks 调用 GPU。先泼一盆冷水Windows Server 2019 的 RDP 会话不会因为你装好了显卡驱动就自动把 GPU 能力完整交给你。远程会话的图形栈与本地控制台会话不同除非你使用企业级显卡虚拟化方案否则 Solidworks 很可能只能在软件渲染模式下运行。下面这套步骤是结合了官方文档和实际维护环境的经验整理出来的至少能帮你判断“我的硬件到底支不支持远程 GPU 加速”。4.1 选对硬件和驱动方向服务器上插的显卡不能只看核心型号还要看驱动类型。这里有一个很现实的对比驱动类型是否支持 RDS 多会话Solidworks 远程表现适用情况NVIDIA RTX vWS / vGPU 驱动原 GRID官方支持专门为虚拟化和 RDS 优化能实现硬件 OpenGL 加速多用户并发时表现平稳设计团队正式环境NVIDIA Studio / GeForce Game Ready 驱动非官方支持在 Server 上安装需要改配置部分会话能识别 GPU但稳定性看运气个人测试、临时环境AMD 企业级虚拟化驱动MxGPU 等官方支持同样可以实现远程加速对应 AMD 硬件Microsoft 基本显示适配器无 GPU 加速Solidworks 必然软件渲染完全没装驱动如果你决定用消费级 GeForce 显卡先顶着至少记得下载Windows Server 2019 对应的驱动版本。NVIDIA 对 Server 系统和桌面系统的驱动是不同的盲目装 Game Ready 驱动通常装不上去即便强行安装也可能在远程会话里看不到显卡。正式环境我强烈建议走 NVIDIA vGPU/RTX vWS 这类方案。它本质上是把物理 GPU 抽象成多个虚拟 GPU 实例分配给不同的 RDS 会话会话里的 DirectX 和 OpenGL 请求会真正切到硬件执行。这正好补上了 RemoteFX 移除后的空缺。4.2 安装驱动并确认 RDP 会话能识别到显卡驱动安装步骤不复杂下载对应驱动包后在服务器上正常双击安装重启服务器。启动后先在控制台会话也就是物理机面前的桌面或者通过 iDRC/IPMI 打开的会话里验证一下WinR输入dxdiag打开 DirectX 诊断工具。查看“显示”标签页应该能看到你的显卡型号而不是“Microsoft 基本显示适配器”。这一步能通过说明驱动加载正常。但注意这只是控制台会话正常。接下来用 mstsc 远程登录同一个服务器再跑一次dxdiag看“显示”标签里是否还是那块显卡。如果你发现远程会话里显示的是“Microsoft 基本显示适配器”说明 GPU 没有在 RDP 会话中加载。这时候需要往下走策略开关。4.3 打开远程会话硬件图形加速的开关在支持该功能的驱动和硬件组合下你需要让远程会话启用硬件图形适配器。组策略路径计算机配置 → 管理模板 → Windows 组件 → 远程桌面服务 → 远程桌面会话主机 → 远程会话环境找到“使用硬件图形适配器如果可用”设置为“已启用”。如果组策略里找不到这个选项部分精简版系统或更新版本里可能被隐藏可以通过注册表启用reg add HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services /v fEnableRemoteFX /t REG_DWORD /d 1 /f修改后建议重启服务器。重启后重新建立远程会话再次运行dxdiag观察远程会话里的显示适配器。这里有个经验要分享如果注册表和组策略都设置了远程会话里依然是“Microsoft 基本显示适配器”那大概率是驱动不够格而不是配置不对。不要继续在上面浪费时间该换 vGPU 方案就换 vGPU 方案。4.4 Solidworks 自己的图形设置与验证GPU 被 RDP 会话识别后还要看 Solidworks 本身认不认这个 GPU。打开 Solidworks进入“工具 → 选项 → 系统选项 → 性能”。这里有几个关键项“使用软件 OpenGL”这个选项一定要取消勾选。勾选它等于强制 Solidworks 放弃 GPU改用 CPU 渲染。如果你的远程会话很卡但驱动又识别不到可以勾选“使用软件 OpenGL”让 Solidworks 先稳定起来但这只是保底方案不是最终目标。Solidworks 2016 之后的“Mercury”渲染引擎默认是开启的大型装配体旋转、缩放、剖切时都会尝试调用 GPU。在远程会话中只要 Solidworks 能创建 OpenGL 硬件上下文它就会自动走 GPU。验证 GPU 是否真的在干活有两招在 Solidworks 里打开一个有分量的装配体快速旋转模型。同时打开任务管理器 → 性能 → GPU看“3D”或“Compute”引擎的使用率是否明显拉升。如果全程是 0%说明还是在软件渲染。打开 PowerShell用 Performance Monitor 看 GPU Engine 的实时占用typeperf \GPU Engine(*)\Utilization Percentage -si 1旋转模型的时候命令行的数值如果出现跳动说明 GPU 有在参与计算。5. RDP 远程显卡实战排障授权、崩溃、D3D 报错与调优最后一章把远程桌面 Solidworks 场景下几个高频问题集中排一遍。这些基本都是热搜词榜上有名的痛点也是我自己实际维护中反复遇到过的。5.1 授权到期用户突然全部连不上典型表现远程桌面连接界面在认证通过后报“没有远程桌面授权服务器提供许可证”或者“远程会话已中断”。排查链路先打开“远程桌面许可管理器”看许可证服务器状态是否“已激活”。如果显示“未激活”说明宽限期已经结束或者说你已经错过了激活时机。检查 CAL 数量。即使许可服务器已激活如果 CAL 数目少于并发会话数多出来的连接也会被拒。打开事件查看器查找TerminalServices-RemoteConnectionManager下的 4106 事件。这个事件会明确记录授权失败的原因。确认操作系统本身已激活。Server 2019 未激活时RDS 授权可能一并被卡住。处理方法按第 3 章流程补激活、补装 CAL。如果你之前用的许可证服务器是临时的现在要正式切换记得先确保原证书不再被使用否则可能出现 CAL“锁死”在旧服务器上。5.2 Solidworks 崩溃或提示“无法获得下列许可 Solidworks Standard”这个报错很有意思很多人以为是 Solidworks 授权文件出了问题但实际上很可能是OpenGL 渲染上下文创建失败导致 Solidworks 误判。在 RDP 会话中如果 GPU 驱动没有正确加载Solidworks 初始化图形环境时会走到一条异常分支弹窗提示“无法获得许可”但真实原因只是它连图形环境都建不起来。临时应对方案在 Solidworks 启动前按住快捷键进入设置具体方法是按住左 Ctrl 键的同时双击 Solidworks 图标启用“使用软件 OpenGL”模式。这样 Solidworks 至少能正常启动至于性能嘛先保命再说。然后再按第 4 章去排查 GPU 驱动和远程图形开关。5.3 “GPU 发生崩溃或 D3D 设备已移除”这个报错我也常看见结合远程桌面场景原因通常有几个显卡驱动重置远程会话运行 3D 负载时出现不稳定驱动被系统踢掉。常见于消费级显卡在服务器高负载下的供电或散热不足。驱动版本过新服务器环境追求稳定不建议装最新 Game Ready 驱动。我踩过最惨的一次是把驱动升级到新版后第二天远程会话里 Solidworks 全部黑屏回滚驱动才恢复。远程连接被强行断开比如网线抖动、RDP 会话超时导致 D3D 设备上下文失效。这种情况重新连接后通常会恢复。电源策略Windows Server 默认的电源计划可能是“平衡”显卡降频严重。建议在服务器上设置为“高性能”。处理建议优先回滚驱动到上一个稳定版确认服务器电源计划如果是消费级显卡长时间跑设计负载加装辅助散热或用一块专业卡。5.4 远程体验调优刷新率、带宽与图形质量GPU 的问题解决后还有一个容易被忽略的体验因素RDP 图形的编解码方式。Windows 10/11 的远程桌面客户端支持H.264/AVC 444编码比旧版的位图压缩效率高很多画面更流畅。连接时在 mstsc 的“体验”选项卡里把图形质量调到“高”或“超高”。如果你用的是新版 Windows 远程桌面客户端Windows App连接设置里通常有刷新率选项可调 60Hz 或更高。对 Solidworks 这种需要频繁旋转视角的场景刷新率提升带来的观感改善比想象中明显。服务器端也可以做团体策略调整在“远程会话环境”下启用“使用硬件图形适配器”和“针对远程连接优化视觉体验”。如果走公网最好搭配宽带限制策略避免远程流量抢占太多带宽。局域网环境则不用太纠结这一点。最后分享一个经验这套环境里最影响用户对“卡不卡”感知的往往不是显卡的绝对性能而是用户在远程会话里看到的到底是 WDDM 驱动还是 Microsoft 基本显示适配器。我维护的服务器上出现过一次非常经典的故障远程会话里所有用户都正常但 Solidworks 就是显示软件渲染查了一天发现是显卡驱动在系统更新时被悄悄重置了回退驱动后一切恢复。所以我给你三个可执行的经验装完驱动后务必通过dxdiag在远程会话里确认显示适配器名称而不是只看物理控制台。显卡驱动千万不要追求“最新”稳定版优先最好在服务器上保留上一版驱动的安装包方便秒速回滚。RDS 许可证激活别拖过宽限期把许可服务器状态纳入日常监控哪怕一个月只瞄一眼也不会出大事。希望这篇东西能帮你少走几趟弯路。Solidworks 远程化的难点不在系统本身而在于 RDP 图形栈对 GPU 的支持边界。先认清你的硬件方案再按步骤配置基本就能把用户体验拉回及格线以上。