NX初始化错误-97弹出来的时候,第一反应是重启lmtools,stop server再start server,底下显示Server Start Successful,回去打开NX还是同样的报错,一个字符都没变。
这个错误码的本质是许可握手失败。NX启动时会尝试连接FlexNet许可证服务(lmgrd),读取许可证文件,校验SERVER字段里的主机名、端口号和浮动授权数量,再加载对应功能模块。任何一环断了就返回-97。环境变量、配置文件、系统注册表、网络解析四者必须完全一致,缺一不可。超过七成的-97报错根源在环境变量,或者Windows系统属性里被杀毒软件改掉的计算机名。
先确认计算机名跟许可证文件里的SERVER字段对不对得上。CMD里敲hostname,得到的结果是系统底层认定的名字,比如ZG-SJ-PC。用记事本打开许可证文件,找到SERVER行,比如SERVER ZG-SJ-PC ANY 28000,这里的ZG-SJ-PC必须跟hostname输出完全一致,包括大小写、连字符位置、是否带域名后缀。三个名字对不上,后面所有操作都是白忙。公司网络启用了DNS别名的话,许可证里要写全称。
许可证服务状态查一下。services.msc里找Siemens PLM License Server,右键属性,启动类型改成自动,点启动。以管理员身份运行lmtools,在start/stop/Reread选项卡里先Stop Server再Start Server。服务以user=LocalService身份运行,LMTOOLS可能权限不足读不了许可证文件,把许可证文件和日志文件放在默认位置C:\ProgramData\Siemens\License Server\下面,LocalService对那个目录有修改权限。杀毒软件的一键加速功能会强行关掉NX许可服务进程,把Siemens PLM License Server加到白名单里。
环境变量这块最容易翻车。系统变量里检查UGS_LICENSE_SERVER和SPLM_LICENSE_SERVER,网络浮动许可应该设成27800@你的计算机名,本地单机许可则用LM_LICENSE_FILE指向许可证文件的完整路径。变量名拼写要精确,UGS_LICENCE_SERVER这种英式拼写不行,端口和服务器名之间不能有多余空格。CMD里敲echo %UGS_LICENSE_SERVER%确认一下实际生效的值。

防火墙端口别忽略。许可证服务器默认用29000端口,如果改了端口号,环境变量和lmtools配置要同步更新。在高级安全Windows Defender防火墙里创建入站规则,允许TCP端口29000、29001、12088通过。客户端连不上服务器的时候先ping一下许可证服务器地址,再telnet端口通不通。
多版本共存是另一个坑。高版本许可证可以覆盖低版本软件,反过来不行。装了NX12.0之后又装了NX1847,低版本的许可证服务把高版本的覆盖了,结果两个都打不开。把低版本的许可服务卸载掉,只保留高版本的。环境变量UGS_LICENSE_SERVER的值改成27800@当前系统计算机名,多个版本的NX共用一套许可服务。
D:\Siemens\NX\license_backup\下面放一份当前splm8.lic的备份和hostname的输出记录,下次报-97先对这三样:hostname、SERVER行、环境变量。那个端口号我之前一直写27000,后来发现NX12之后默认改成28000了,具体版本对应的端口是……
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删