☰
Windows Server 2019 RDS部署与Solidworks GPU加速实战指南
2026/9/26 14:06:17 网站建设 项目流程

很多做设计、机械加工和仿真分析的小团队,都会遇到一个共同的痛点:公司里就那两三台配置不错的图形工作站,跑Solidworks的同事一多就得排队。后来我看了“Windows Server 2019 创建RDS、激活远程桌面服务(RDS)许可证、设置RDP使用Solidworks软件GPU开启方法”这个标题,发现它正好把这条最常踩的路线给串起来了——既要解决多人同时远程使用Solidworks的问题,又要让远程会话里的显卡真正干活,而不是让Solidworks在软渲染模式下卡成PPT。这篇文章就围绕这条链路,把RDS部署、许可证激活、GPU加速这三个环节逐一拆开讲清楚。

先说清楚这套方案适合什么人。如果你是IT管理员,要给公司内部十几个人做Solidworks远程办公,服务器是Windows Server 2019,客户端可能包括Windows笔记本和台式机;或者你是个人用户,手头有工作站,想通过RDP从别的电脑连过去用Solidworks,但发现图形性能很差,那么这篇文章的思路可以直接拿来用。我下面的操作不是“理论最优解”,而是“实际跑通、能交差”的方案,其中涉及到GPU的部分有几个关键前提,我也会把原因讲透。

1. 部署前的全局规划:为什么需要RDS而不是普通RDP

很多人第一反应是:Windows 10也有远程桌面,直接开个RDP不就行了?但普通RDP的限制非常麻烦——同一时间只允许一个交互式会话,第二个用户一登录,第一个就被踢掉了。Solidworks这种重度GUI应用,不可能让多个人轮流挤一个桌面。远程桌面服务(RDS)的价值就是通过会话主机(Session Host)同时承载多个用户的远程桌面会话,每个用户看到的是自己的独立桌面,互不干扰。

1.1 理解RDS的两种模式:会话集合与虚拟桌面集合

RDS在部署方式上分两派:会话集合(Session Collection)和虚拟桌面集合(Virtual Desktop Collection)。前者是多个用户共享一个Windows Server桌面,所有用户跑在同一个操作系统上,应用和桌面都是共享的;后者是每个用户有独立的虚拟机,隔离性更好,但需要额外的Hyper-V主机和更大的资源开销。

对于Solidworks这种需要稳定图形性能、又对资源占用比较敏感的场景,我建议优先选择会话集合。理由有几点:

  • Solidworks的许可证本来就可以在网络许可证服务器上集中管理,不需要每个用户拥有独立虚拟机。
  • 会话集合下,只需要在一台服务器上安装Solidworks,用户登录后看到的都是同一份安装,省去了副本多开和维护成本。
  • 后续升级Solidworks版本时,只需要在服务器上改一次,所有用户下一次登录就生效。

虚拟桌面集合不是不能用,而是适合预算充足、对软件兼容性要求极其苛刻的环境。比如某个用户装了特殊的插件或配置,和别人的环境彻底隔离,这时候才值得上VDI。

1.2 服务器硬件、GPU与存储准备

RDS会话主机和普通的工作站不一样,它要服务十几个并发用户,CPU主频不必追求极致,但核心数量一定要多。我部署过一台双路Xeon Silver 4210(20核40线程),带12个Solidworks轻度使用用户,CPU占用在60%左右,整体还算稳。内存方面,Solidworks每个会话至少要2GB起步,加上Windows Server系统本身占用4GB左右,所以16个并发用户建议至少64GB内存,预算宽裕直接上128GB。

磁盘性能是最容易被忽略的瓶颈。Solidworks打开装配体时需要频繁读取模型文件,如果多人同时打开同一个大装配体,机械硬盘会直接卡死。建议用NVMe SSD做系统盘,模型文件放在另一块SSD上,并且开启存储空间的写缓存。网络方面,内网千兆是底线,如果客户端要跑大型装配体,建议万兆到桌面,否则远程会话里的模型旋转会明显掉帧。

GPU是这个话题里的重点。标题提到“RDP使用Solidworks软件GPU开启方法”,关键前提是:你在服务器里装了几块显卡、这些显卡能不能被会话主机使用。Windows Server 2019不像普通Windows那样自动给RDP会话分配GPU资源,必须做额外配置才能让Solidworks从软渲染切到硬件渲染。关于这部分,后面第4章会详细展开。

1.3 规划许可模式:每用户 vs 每设备(先把账算清楚)

RDS许可有“每用户”和“每设备”两种模式,决策时记住一个核心原则:先看你的用户和设备数量哪个小。

如果公司有20个员工,但只有10台电脑需要远程访问服务器,选“每设备”;反过来,员工用各种电脑换着连,比如上午办公室台式机、下午个人笔记本,就选“每用户”。每用户模式通常更灵活,但价格也更贵,因为每人要买一个RDS CAL(客户端访问许可证)。

在实际激活RDS许可证之前,还有一个被人疯狂踩坑的点:许可模式必须在组策略里指定,而且要和你在授权服务器上买的CAL类型保持一致,否则系统会一直提示“没有可用许可证”。这我在第3章会给出完整的设置位置。

2. 从零搭建RDS远程桌面服务

规划做完了,开始动手。我建议在干净的Windows Server 2019系统上操作,不要一开始就加入AD域。虽然RDS可以和域结合做统一认证,但小型团队直接用服务器本地账号管理更省事,先把服务跑起来再说。

2.1 安装RD会话主机角色

打开服务器管理器,点击“添加角色和功能”,在“远程桌面服务”分类下勾选**“远程桌面会话主机”**。如果后面要做Web访问或网关,可以一并勾选,但最基础的就只要会话主机。

安装完成后,系统会要求重启。很多新手在这里不知道下一步该干什么,其实重启后还需要验证一个东西:远程桌面会话主机的“远程桌面”开关是否开启。在“系统属性”->“远程”里,确保“允许远程连接到这台计算机”是选中的。

从命令行安装更快,PowerShell里执行:

Install-WindowsFeature RDS-RD-Server -IncludeManagementTools

装完角色后,再执行:

Restart-Computer

2.2 创建会话集合并配置用户授权

角色安装好,还需要在服务器管理器里创建“会话集合”(Session Collection)。操作路径:服务器管理器 -> 远程桌面服务 -> 概述 -> “创建新会话集合”。

按照向导,给它起个名字,比如“Solidworks-LAB”,把服务器加进去,然后设置用户组。这里有个细节:会话集合创建时默认只允许管理员组和创建者指定的用户访问。如果你的用户都在本地组“Remote Desktop Users”里,记得在向导的“用户组”页面显式加上“.\Remote Desktop Users”,否则用户会收到“你已经获得连接授权,但该用户不存在”这类误导性错误。

另外,会话集合创建完后,还需要配置会话超时和断开重连策略。Solidworks用户经常挂着不关,如果服务器设置了一个小时断开闲置连接,用户模型没保存就断掉会非常难受。在RDS属性里,把“到达时间限制”设置为“从不”,“闲置会话限制”设置为“从不”,至少要在用户反馈“总是掉线”之前先去关掉这些默认限制。

2.3 远程桌面连接测试与组策略优化

先用一个测试账号从Windows 10客户端连接:

远程桌面连接(mstsc)-> 输入服务器IP -> 输入用户名密码 -> 登录后看到Windows Server桌面。

如果出现了“由于没有远程桌面授权服务器,远程会话被中断”的报错,这是正常的——因为还没配置RDS许可证。先暂且用管理员身份绕过这个提示继续测试,或者用评估期内直接跳过。等第3章激活许可证后,这个报错会自动消失。

测试通过后,还需要调整一组组策略,让远程桌面体验更接近本地。运行gpedit.msc,在“计算机配置 -> 管理模板 -> Windows组件 -> 远程桌面服务 -> 远程桌面会话主机 -> 远程会话环境”下,把“使用硬件图形适配器进行所有远程桌面服务会话”设为“已启用”,同时把“将视觉体验优化为最佳性能”也打开。这两个策略对GPU调用和画面流畅度影响很大,尤其是Solidworks这种图形密集型软件。

3. 激活RDS许可证并绑定授权服务器

RDS许可证是这套方案里最容易炸的地方。很多人辛辛苦苦装好RDS,结果一登录就被踢出来,弹窗写着“远程桌面授权到期”。下面按实操顺序一步步来,只要按这个顺序做就不会卡。

3.1 安装RD授权服务器角色

在服务器管理器里再次打开“添加角色和功能”,这次勾选**“远程桌面授权”**角色。安装完成后,授权服务器不会自动激活,还需要在工具菜单里打开“远程桌面授权管理器”,对它进行激活。

这里有一个很多教程没讲透的坑:如果这台服务器既当会话主机又当授权服务器,授权服务器必须先激活并安装好CAL,否则即使你后面配置了组策略,系统依然会报授权不可用。我的建议是先把这个角色装上,但暂时不做CAL,等验证完服务器能正常激活后再装,避免激活次数太快用完。

3.2 激活许可证服务器并添加CAL

打开“远程桌面授权管理器”,右键点击授权服务器 -> “激活服务器”。激活过程需要选择连接方式,推荐“自动连接Internet”,它会自动验证。

激活后,右键点击服务器 -> “安装许可证”,选择你的购买渠道(Open License、Enterprise Agreement等),输入协议号。注意:RDS CAL是按用户或设备数购买的,与Windows Server标准授权不是一回事。比如你有20个用户,就要买20个RDS Per User CAL,单独激活。

安装完成后,可以回到“服务器管理器 -> 远程桌面服务 -> 概述”,看到许可证状态显示为“已配置”。如果这里显示“尚未配置”,多半是下一步的组策略缺失。

3.3 配置许可证服务器作用域,避免“授权过期”误报

这是90%“RDS授权过期”问题的根源。正确做法是:在会话主机上运行gpedit.msc,进入“计算机配置 -> 管理模板 -> Windows组件 -> 远程桌面服务 -> 远程桌面会话主机 -> 授权”。

在右侧找到“使用指定的远程桌面许可证服务器”,设为“已启用”,并把授权服务器的机器名或IP填进去。紧接着在同目录下设置“远程桌面授权模式”,选择“按用户”或“按设备”,必须和购买/安装的CAL类型一致。

改完后在命令行强制刷新策略:

gpupdate /force

重启服务器,或者至少重启“远程桌面服务”相关服务(Remote Desktop Services),再次用客户端连接,那个臭名昭著的授权弹窗就消失了。

4. Solidworks远程调用的GPU加速方案

到这里,RDS本身已经可以稳定使用,但Solidworks用户一登录就会发现:打开模型、旋转视角时很卡,菜单和渲染都慢半拍。原因很简单:RDP协议默认不会把服务器的独立显卡能力提供给远程会话,Solidworks会退回到WARP软渲染或GDI渲染。下面把这条链路拆开,讲清楚怎么让Solidworks在远程会话里用上真GPU。

4.1 为什么RDP默认不用GPU:WARP软渲染与RemoteFX

先说底层机制。RDP会话在默认情况下,Graphics要经过Remote Desktop Protocol的虚拟通道传输,Windows对远程会话的渲染要么走CPU软渲染(WARP),要么走基本显示驱动(基本显示适配器)。Solidworks对OpenGL要求很高,WARP模式下基本是不可用的状态,所以会非常卡。

微软曾经在Windows Server 2012 R2 / 2016里推出过RemoteFX vGPU技术,允许虚拟机或远程会话使用宿主机的GPU加速。但Windows Server 2019开始微软明确弃用了RemoteFX,所以想在Server 2019上直接靠RemoteFX开启GPU加速,没有官方支持路径。这也是为什么很多人搜“Windows Server 2019 Solidworks GPU”会看到大量混乱信息的原因。

那么Server 2019上正确的路径是什么?答案是:Hyper-V + GPU-P(GPU Partitioning)或 DDA(离散设备分配)。也就是说,不要在物理会话主机上直接跑RDS会话集合,而是先虚拟化,然后把GPU分配给虚拟机或虚拟机中的远程会话。 Solidworks在最直接的物理机RDP场景下,即使装了驱动,RDP桌面本身也无法把GPU性能透传给远程用户。而通过Hyper-V + GPU-P,每个远程会话的虚拟机可以拿到物理GPU的分区资源,这样Solidworks在虚拟机里运行,实际调用到的就是硬件GPU,而不是WARP。

4.2 基于Hyper-V的GPU虚拟化:GPU-P与DDA的取舍

先讲两种方案的区别,这样你就能根据自己手里的显卡和服务器型号决定怎么选。

GPU Partitioning(GPU-P):把一张物理GPU分割成多个虚拟GPU,分给多个虚拟机或会话使用。它适合“一张显卡给多个用户”的场景,支持多个虚拟机并发。Windows Server 2019上对支持的显卡有明确列表,一般是专业卡或数据中心卡,比如NVIDIA Quadro RTX 4000/5000、NVIDIA A10/A40,以及部分AMD的专业卡。消费级RTX卡(比如RTX 3080/4090)在GPU-P场景下通常不被官方驱动支持,需要修改注册表或特殊驱动,极不稳定。所以如果你想用GPU-P做Solidworks共享,买专业卡几乎是硬性前提。

Discrete Device Assignment(DDA):把一整块物理GPU直接“直通”给某一台虚拟机独占,这个虚拟机里的远程用户或者多个远程用户共享这一张卡。它更接近物理机性能,缺点是显卡无法被多台虚拟机同时使用。如果公司只有一台图形服务器,要给三个用户用Solidworks,DDA只适合先把GPU给一个用户,其他用户继续软渲染,体验割裂。

实际部署时,我建议在Windows Server 2019上配合Hyper-V用GPU-P。原因很实际:Solidworks在专业卡上的OpenGL性能通过分区之后的损耗并不大,而对于装配体和渲染操作来说,GPU-P能把整张卡的算力按比例分配给多个VM,这正是RDS多用户场景最需要的。

4.3 在会话主机上开启Solidworks的硬件渲染

即使GPU挂载成功,Solidworks远程会话里能不能自动识别,还要看两个设置。

首先,远程桌面客户端(mstsc)里要勾选“体验 -> 使用硬件图形适配器”吗?实际上RDP客户端v8及以上版本默认支持H.264硬件加速,但服务器端的会话需要被放到“支持硬件图形”的会话主机上。如果你用Hyper-V + GPU-P,虚拟机里的视频控制器应该显示为“Microsoft Hyper-V 视频”或者你的GPU虚拟功能。此时在虚拟机里打开设备管理器,确认能在“显示适配器”下看到你的物理显卡,而不是“Microsoft基本显示适配器”。

其次,Solidworks自身有图形加速开关。启动Solidworks,进入“工具 -> 选项 -> 性能”,勾选“使用OpenGL”和“增强图像质量(需要OpenGL)”。有些版本里还有“启用硬件加速”选项,一并打开。如果Solidworks还是提示“不支持RealView”,多半是因为系统检测到虚拟机里显示驱动不是完整的WDDM驱动。这时候去显卡厂商官网找针对虚拟化环境的驱动版本,比如NVIDIA GRID驱动(现在叫NVIDIA vGPU驱动),不能用本地桌面版驱动替代。

做完这些,再检查SolidWorks RX诊断工具(开始菜单里有SolidWorks RX),查看“图形硬件”一栏,应该能看到显卡型号和驱动状态,并且不再是“Software OpenGL”。

4.4 验证GPU是否真正被Solidworks调用

这一步太关键了,很多管理员折腾半天,结果Solidworks还是软渲染,因为自己没有验证手段。我一般用三个方法交叉验证:

第一,在虚拟机/服务器里打开“任务管理器”,切到“性能”页签,看“GPU”一栏。在Solidworks里旋转大型装配体时,GPU利用率如果明显跳动到很高的百分比,说明硬件加速已经生效;如果你看到CPU暴涨而GPU几乎为0%,那一定是WARP软渲染。

第二,在Solidworks里打开一个大型装配体,然后执行“视图 -> 修改 -> 渲染”,观察操作响应的延迟。如果旋转时画面很流畅而且阴影计算是实时的,说明GPU在工作;如果旋转时模型变成线框、卡顿严重,基本可以断定为软渲染。

第三,给Solidworks做基准测试。用Solidworks官方的“SolidWorks Benchmark”工具跑一遍CPU/GPU测试,对比远程会话里的成绩和物理机上的成绩。差距在10%-20%以内属于正常范围,超过50%就要检查驱动或GPU分配是否出了偏差。

5. 常见问题与排错实录

最后一部分,把我自己和周围同行在部署这套环境时经常踩到的问题集中整理一下。

5.1 经典问题速查表

症状主要原因解决思路
远程登录后提示“无远程桌面授权服务器”未激活许可或RDS许可作用域未配置按第3章步骤激活授权服务器并设置组策略
用户提示需要加入Remote Desktop Users组会话集合用户组未添加服务器管理器里修改会话集合属性,添加用户组
远程会话卡顿、旋转模型掉帧RDP会话没有GPU加速检查虚拟机是否挂载GPU-P或DDA,切换专业卡显卡驱动
Solidworks打开后弹窗“RealView不可用”虚拟机内显示驱动不支持OpenGL安装NVIDIA vGPU/GRID驱动,或关闭虚拟机的远程FX限制
会话经常掉线或断连RDS策略限制了闲置超时修改RDS会话集合属性,将闲置限制设为从不
连接时黑屏或闪烁显卡驱动与RDP协议冲突更新驱动到适配虚拟化环境的版本,关闭“不支持的RemoteFX功能”
RDS CAL已安装但依然报授权不足授权模式与CAL类型不匹配检查组策略里“远程桌面授权模式”与购买的CAL是“每用户”还是“每设备”

5.2 三个我在实际部署中踩过的坑

第一个坑是把RemoteFX当成Server 2019的可用功能。我最初在一台Server 2019物理机上试图开RemoteFX GPU加速,结果在安装“RemoteFX图形”功能时提示不受支持,最后查文档确认是微软在2019里彻底砍掉了它。如果你和我一样有旧教程的惯性,请直接放弃这条路,转用Hyper-V + GPU-P。

第二个坑是消费级显卡想强行上GPU-P。我在一台实验机器上插了RTX 3090,尝试改注册表启用GPU-P,虽然系统界面能显示分区成功,但Solidworks运行几分钟后驱动崩溃,直接蓝屏。后来换成Quadro RTX 4000才稳定。所以结论是:如果你真要共享GPU跑Solidworks,专业卡是必选项,不要在消费级卡上省这个钱,时间成本远远高于显卡差价。

第三个坑是许可证服务器和会话主机共用同一台机器时的授权时序。我在全新Server 2019上装好RDS和授权角色,激活服务器之后马上给用户开放连接,结果用户报“许可证不可用”。后来发现是组策略没有刷新,授权服务器识别失败。执行gpupdate /force并重启“Remote Desktop Services”服务之后才恢复正常。任何涉及到LICENSE的变更,改完后一定要强制刷策略,不能省这一步。

另外还有个小技巧:如果只是在局域网内测试,可以跳过AD域环境,直接用服务器本地用户;但生产环境最好还是加域,因为RDS的每用户许可和域用户组管理结合起来才顺手,而且后面要做用户策略细分也方便。加域后注意RDS授权服务器的组策略作用域要重新指定,否则之前配好的授权又会“失效”。

这个部署做完之后,Solidworks在远程桌面里的操作手感已经和本地工作站差不多了。如果后续要扩展,可以考虑加一台远程桌面网关服务器,这样用户在外网通过网页也能访问会话主机,而不需要暴露3389端口;再往后如果需要更精细的资源管控,可以研究下RDS的小型化容量规划工具,把用户并发数、内存占用的预测做得更准。我在实际使用中养成的一个习惯是:每季度定期检查一次RDS许可证剩余数量和授权状态,因为CAL授权很容易在续期时掉链子,早发现早处理,总比用户在项目截止前突然连不上要从容得多。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询