Частые ошибки при настройке лицензий NX
Это дополнение к основному руководству Устранение ошибок лицензирования NX. Главной задачей был сам License Error [-1], но по пути собралась целая коллекция сопутствующих граблей. Почти все они связаны не с NX, а с особенностями Windows, антивирусов и PowerShell.
1. Ошибки PowerShell при работе со скриптами
MissingEndCurlyBrace — обрезанный код
В консоли PowerShell вылезает красная строка:
Отсутствует закрывающий знак "}" в блоке операторов или определении типаПричина прозаическая: мессенджер (VK или Telegram), через который пересылался текст скрипта, обрезал сообщение по лимиту символов. В Блокнот вставлялась только верхняя половина кода, скрипт обрывался на полуслове, и парсер PowerShell естественным образом ругался на отсутствие закрывающей скобки.
Решение: передавать скрипт готовым файлом .ps1, а не текстом в чате.
PSSecurityException — защита от запуска скриптов
Файл не имеет цифровой подписи. Невозможно выполнить сценарий в указанной системе.Срабатывает встроенная политика безопасности Windows ExecutionPolicy, которая по умолчанию запрещает запуск любых пользовательских .ps1, скачанных из интернета.
Решение: выполнить следующую команду перед запуском файла:
Set-ExecutionPolicy Bypass -Scope Process -ForceФлаг -Scope Process ограничивает действие политики текущим сеансом, так что глобально безопасность системы не страдает.
TerminatorExpectedAtEndOfString — проблемы с кодировкой
В консоли появляется сообщение и куча нечитаемых символов:
В строке отсутствует завершающий символ: '
ўРћР'Рћ! РћР'РЇР—...Стандартный Блокнот сохранил файл с русскими буквами в UTF-8, а PowerShell прочитал его в старой ANSI. Русские буквы сломали синтаксис.
Решение: перевести текст скрипта полностью на английский, чтобы исключить конфликт кодировок. Альтернатива: пересохранить файл в правильной кодировке через VS Code или Notepad++, но англоязычный скрипт надёжнее в долгосрочной перспективе.
2. Ошибки распаковки архива
Несовпадение контрольной суммы в WinRAR
При извлечении папки сервера из архива WinRAR выдавал ошибку распаковки: из 28 файлов в подпапке windows/core извлекались только 18. Логичный вывод — битый архив.
На самом деле архив был в порядке. Windows Defender не был отключён до конца: он распознавал файлы кряка (msys-2.0.dll и sh.exe) как HackTool и удалял их прямо в момент извлечения. Файл исчезал, WinRAR натыкался на пропажу и считал, что архив повреждён.
Решение: полностью отключить Защитник Windows перед распаковкой, а не просто приостановить защиту в трее.
3. Системные ошибки Windows и конфликты процессов
Semaphore lock и Signal 32 — процессы-зомби
В lmgrd.log появляются строки:
(ugslmd) cannot create semaphore lock (Global\LM_ugslmd_SEMAPHORE): 5
(ugslmd) EXITING DUE TO SIGNAL 32 Exit reason 9
(lmgrd) MULTIPLE "ugslmd" license server systems running.Процессы старого сервера от NX 10 зависли в оперативной памяти даже после остановки службы. Они удерживали порт 28000 и файлы блокировки, поэтому новый сервер при запуске видел, что место занято, и аварийно отключался с кодом Signal 32.
Решение: жёстко убить процессы через cmd:
taskkill /F /IM ugslmd.exe /T
taskkill /F /IM lmgrd.exe /TПодробнее этот случай разобран в Этапе 1 основного руководства.
Папка уже используется
При попытке удалить папку старого сервера (PLMLicenseServer) Windows выдаёт окно:
Операция не может быть завершена, так как эти папка или файл открыты в другой программе.Внутри папки физически работали lmgrd.exe и ugslmd.exe. Windows блокирует удаление файлов, открытых другим процессом.
Решение: сначала остановить службу старого сервера и завершить процессы через services.msc, Диспетчер задач или taskkill — и только потом удалять папку.
4. Ложные тревоги
Состояние START_PENDING
При запуске install_or_update.bat в консоли мелькает Состояние : 2 START_PENDING. Со стороны выглядит так, будто сервер завис и не работает — в момент паники легко принять это за реальную ошибку.
На деле это нормальная задержка в 3–5 секунд. Батник запрашивает статус службы сразу после команды «Старт», а серверу нужно время, чтобы прочитать огромный файл лицензии (сотни инкрементов INCREMENT для NX, Teamcenter, SolidWorks и прочих продуктов в одном пакете) и открыть порты.
Лечится ожиданием. Через несколько секунд статус в services.msc сам сменится на RUNNING.