Apr 05 2012

Autodesk Inventor Network License not Available

Published by at 9:56 pm under Misc

Autodesk Inventor logs in LMToolsInventor Network Licenses not Available>
There seems to be no tool to check which users have taken an
Autodesk Inventor network license. End users get a “network
license not available” message and keep asking the IT
department why they get no license to run the software or who
they were given to. I wrote this tool to avoid useless calls and give anybody the ability to check who’s connected at this very moment, so they can deal with each other to release a license.

Inventor generates a log file in which each (dis)connection is recorded among other information. The script parses the file and displays online users.
Only 2 steps are needed to set this up:
– Set the path to the log file flex.log to a read only shared folder and give access to the end users.
– Create the following inventor.vbs script in the same folder.
The script was written in VB so it can be run from any Windows computer. I made it available to users on a Windows share.
Set the “Users” variable to your own number of licenses. We have 4 concurrent Inventor licenses in our case.

Now users know where they should be looking when they get a Inventor “network license not available” message.

Option Explicit

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

'Log filename
strTextFile = "flex.log"

'Create a File System Object
Set objFSO = CreateObject("Scripting.FileSystemObject")
if not (objFSO.FileExists(strTextFile)) then
   MsgBox strTextFile&" does not exist!", vbExclamation, "Error"
end if
Set objFile = objFSO.OpenTextFile(strTextFile, ForReading)

i = 0

' Search for connections in reverse order
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

' Index in allSessions
On Error Resume Next
l = UBound(allSessions)
' Count licenses
i = 0

if (l = "") then
   currentSessions = "Nobody connected"
end if

' Returns x last connections
' without duplicates
Do While (i < Users) and (l >= 0)
   line = split(allSessions(l))
   if line(0) = "" then
      ' Check if user has not disconnected
      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
      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

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


Set objFSO = Nothing

3 responses so far

3 Responses to “Autodesk Inventor Network License not Available”

  1. Alexandre Jolyon 25 May 2012 at 6:26 pm

    Thanks Dave! This script is really useful. In my case, I had to change the log file name to \"debug.log\" (as per default).

    Also, I had a problem with network licenses not released after exiting Inventor. Although I\’m not sure if this issue occurred right after our 2012 upgrade but I found a way to fix it. See this KB (FYI) http://usa.autodesk.com/adsk/servlet/ps/dl/item?siteID=123112&id=5549171&linkID=9240617

  2. daveon 25 May 2012 at 6:35 pm

    You’re welcome, glad this was useful!

  3. daveon 11 Apr 2013 at 5:50 pm

    – Test if flex.log file exists
    – Bug fixed: Error was thrown when nobody connected

Trackback URI | Comments RSS

Leave a Reply