Sep 19 2021

Autodesk Inventor Licencia de Red no Disponible

Published by at 8:10 under Diverso

Logs Autodesk Inventor en LMTools
Inventor Licencia de Red no Disponible
Autodesk no parece proporcionar una herramienta para averiguar
quién utiliza las licencias de red de Inventor. Los usuarios finales
se preguntan por qué reciben el mensaje de error Inventor
«Licencia de Red no Disponible», y a quién se han asignado estas licencias.


Escribí esta herramienta para evitar llamadas innecesarias al departamento de TI y también para dar a todos la posibilidad de saber quién está conectado en todo momento. Por lo tanto, los usuarios pueden organizar entre ellos la liberación de una licencia.

Inventor genera un archivo de registro en el que se registra cada (des) conexión junto con otra información. El script analiza el archivo y muestra los usuarios registrados.

Solo son necesarios 2 pasos para la instalación:
– Establezca la ruta del archivo de registro flex.log en un directorio compartido de solo lectura y otorgue derechos de acceso a los usuarios finales.
– Cree el siguiente script inventor.vbs en la misma carpeta.

El script fue escrito en VB para ser ejecutado desde cualquier PC con Windows. Lo puse a disposición de los usuarios en un recurso compartido de Windows.
Finalmente, configure la variable «Users» con su propio número de licencias. Tenemos 4 licencias concurrentes aquí.

Ahora, los usuarios saben dónde buscar cuando reciben un mensaje de error de Inventor «Licencia de red no disponible».

Option Explicit

Dim objFSO, objFile, strTextFile
Dim line, allSessions(), offline, currentSessions, firstIndex
Dim i, l
CONST ForReading = 1
CONST Users = 4

'Nombre del archivo de registro
strTextFile = "flex.log"

'Crear un objeto de sistema de archivos
Set objFSO = CreateObject("Scripting.FileSystemObject")
if not (objFSO.FileExists(strTextFile)) then
   MsgBox strTextFile&" no existe!", vbExclamation, "Error"
   wscript.quit
end if
Set objFile = objFSO.OpenTextFile(strTextFile, ForReading)

i = 0

' Encuentra conexiones en orden inverso
Do Until objFile.AtEndOfStream
    Line = objFile.ReadLine
    If (not InStr(line, "(adskflex) OUT:") = 0) or (not InStr(line, "(adskflex) IN:") = 0) Then
        Redim Preserve allSessions(i)
        allSessions(i) = line
        i = i + 1
    End If
Loop

' Index en allSessions
On Error Resume Next
l = UBound(allSessions)
' Compte les licences
i = 0

if (l = "") then
   currentSessions = "Nadie ha iniciado sesión"
end if

' Devuelve las últimas x conexiones
' sin tener en cuenta los duplicados
Do While (i < Users) and (l >= 0)
   line = split(allSessions(l))
   ' Cas heure < 10h
   if line(0) = "" then
      ' Compruebe si el usuario no se ha desconectado
      if StrComp(line(3), "In:", vbTextCompare) = 0 and InStr(currentSessions, line(5)) = 0 then
         offline = offline & line(5) & " "
      end if
      if InStr(currentSessions, line(5)) = 0 and InStr(offline, line(5)) = 0 then
         currentSessions = currentSessions & line(1) & " " & line(5) & VbCrLf
         i = i + 1
      end if
   else
      if StrComp(line(2), "In:", vbTextCompare) = 0 and InStr(currentSessions, line(4)) = 0 then
         offline = offline & line(4) & " "
      end if
      if InStr(currentSessions, line(4)) = 0 and InStr(offline, line(4)) = 0 then
         currentSessions = currentSessions & line(0) & " " & line(4) & VbCrLf
         i = i + 1
      end if
   end if
   l = l - 1
Loop

MsgBox currentSessions, vbInformation, "Licencias Inventor"
'wscript.echo currentSessions

objFile.Close

'Cleanup
Set objFSO = Nothing

No responses yet

Comments RSS

Leave a Reply