企业软件浮动许可闲置时,直接强踢容易踩违约红线。我上周在武汉某汽车零部件厂,用FlexNet原生机制把闲置率压到5%以内,没改一句授权文件。
这篇讲清楚什么算合规回收、options文件怎么写、lmremove何时能用。适用SolidWorks 2022+、AutoCAD 2024、ANSYS 2023 R2等FlexNet体系。
巡检时我常看到这几类占用:
| 软件 | 浮动总数 | 日均峰值占用 | 真实活跃(有键鼠/CAD操作) | 纯闲置>20min |
|---|---|---|---|---|
| SolidWorks Premium | 50 | 46 | 41% | 47% |
| AutoCAD 2024 | 80 | 74 | 44% | 39% |
| ANSYS Mech 2023R2 | 24 | 21 | 36% | 58% 闲置不是用户故意,是FlexNet默认只认心跳,不认“人在不在”。 |
搞回收前,先把底层几件事捋顺。
options文件优先级高于license文件 很多管理员只会改lic,不知道VENDOR行挂.opt后能做TIMEOUT、RESERVE、GROUP控制。 
合规的核心原则只有一条:用厂商自己提供的机制(TIMEOUTALL / RESERVE / lmremove),不碰license特征码,不逆向不破解。
进License Server,FlexNet utils目录一般是:
C:\Program Files\Flexera Software\FlexNet Publisher\utils
抓一次全量状态:lmutil lmstat -c 27000@lic-srv -a > D:\audit\lm_20260805.log
配合Windows查空闲:quser /server:designpc01
筛出IDLE TIME大于0:20且CAD进程CPU<1%的会话,列入待回收池。
【避坑指南】别信lmstat里的“start time” alone,要结合AD登录时间和RDP会话状态交叉看,否则会把跑批的后台节点误杀。以SolidWorks的sw_d.opt为例,和sw_d.lic放同目录,在lic的VENDOR行挂上:
VENDOR sw_vendor licenses/sw_d.opt
opt文件内容:TIMEOUTALL 1800
GROUP core_design zhangs wangl cheny
GROUP sim_node node01 node02
RESERVE 6 SW_SIM USER_GROUP sim_node
MAX 42 SW_PREMIUM USER_GROUP core_design
含义直白:ALL FEATURES: INACTIVITY TIMEOUT set to 1800 seconds
【专家提示】TIMEOUTALL最小生效值受版本限制,部分FlexNet构建最低900秒(15分钟),写600不报错但不生效。
TIMEOUTALL覆盖不了一种情况:网络闪断后客户端没重连,服务端还认为活着。
先开lmadmin的回收开关(默认禁):
lmadmin -allowLicenseReclaim
确认目标会话后,按vendor user host display四元组释放:lmutil lmremove -h sw_vendor zhangs DESIGNPC07 0
【避坑指南】lmremove前必须查lmstat -c ... -a拿到准确display值,填错四元组会报“No such user/host/display”,也别在用户存盘瞬间执行。回收策略推下去,设计部第一反应都是怕做一半被踢。
我们在内网放了个轻量状态页:
单次回收容易,半年后反弹才是常态。我们给客户定的三条铁律:
每周一出利用率周报 取周一9:00/周三13:00/周五21:00三次lmstat快照,活跃比低于70%就复查TIMEOUT参数。 问:TIMEOUTALL设15分钟会不会把大装配体保存的人踢掉?
会,所以我们的经验值是30分钟起步,且必须配合“CPU>1%或键鼠有输入即打断计时”。纯锁屏才计入超时。
问:用lmremove强行释放,算不算违反软件协议?
不算,前提是只用FlexNet原生命令、不篡改license特征。但默认lmadmin禁掉它是有原因的——误杀风险自负,建议只在确认真死会话时用。
问:AutoCAD和SolidWorks能共用一套opt策略吗?
不能。每个vendor daemon读自己的opt文件,SW写sw_d.opt、ACAD写acad.opt,TIMEOUTALL各自独立,混写不生效。