Avr 05 2012

Autodesk Inventor Licence réseau non Disponible

Publié par à 10:29 sous Divers

Logs Autodesk Inventor dans LMTools
Inventor licence réseau non disponible
Autodesk ne semble pas fournir d’outil pour savoir qui utilise des
licences réseau Inventor. Les utilisateurs finaux se demandent
pourquoi ils obtiennent un message d’erreur Inventor
« Licence réseau non disponible », et à qui ces licences ont été
attribuées. J’ai écrit cet outil afin d’éviter les appels inutiles au département informatique et aussi donner la possibilité à tous de savoir qui est connecté à chaque instant. Ainsi les utilisateurs peuvent s’arranger entre eux pour libérer une licence.


Inventor génère un fichier de log dans lequel chaque (dé)connexion est enregistrée avec d’autres informations. Le script parse le fichier et affiche les utilisateurs connectés.
 
Seulement 2 étapes sont nécessaires pour la mise en place:
– Paramétrer le chemin du fichier de log flex.log vers un répertoire partagé en lecture seule et donner les droits d’accès aux utilisateurs finaux.
– Créer le script suivant inventor.vbs dans le même dossier.
 
Le script a été écrit en VB pour être exécuté depuis n’importe quel PC sous Windows. Je l’ai mis à disposition des utilisateurs sur un partage Windows.
Enfin, Paramétrer la variable « Users » avec votre propre nombre de licences. Nous avons 4 licences concurrentes ici.

A présent, les utilisateurs savent où regarder lorsqu’ils ont un message d’erreur Inventor « Licence réseau non disponible ».

Option Explicit

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

'Nom du fichier de log
strTextFile = "flex.log"

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

i = 0

' Recherche les connexions en ordre inverse
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 dans allSessions
On Error Resume Next
l = UBound(allSessions)
' Compte les licences
i = 0

if (l = "") then
   currentSessions = "Personne n'est connecté"
end if

' Retourne les x dernières connexions
' sans tenir compte des doublons
Do While (i < Users) and (l >= 0)
   line = split(allSessions(l))
   ' Cas heure < 10h
   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
   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, "Licences Inventor"
'wscript.echo currentSessions

objFile.Close

'Cleanup
Set objFSO = Nothing

One response so far

Une Réponse à “Autodesk Inventor Licence réseau non Disponible”

  1. daveon 11 Avr 2013 at 4:52

    Nouvelles modif:
    – Test existence fichier flex.log
    – Correction bug, donnait une erreur si personne n’était connecté

Comments RSS

Leave a Reply