speedy-luis
Goto Top

Zentrale Übersicht wer ein bestimmtes Programm geöffnet hat

Hallo Miteinander,

folgendes Szenario:

Wir verwenden eine bestimmte CAD-Software, wovon wir eine Anzahl x an Lizenzen haben.
Die Lizenzen werden über einen Server (online) vom Hersteller abgerechnet. Leider wird den Usern bei Überschreitung der Anzahl x der Zugang zur besagten Software nicht gesperrt. Am Monatsende erhalten wir dann eine Rechnung für die Übernutzung der Software. Dies würden wir gerne unterbinden bzw. zumindest kontrollieren. Der Hersteller hat dazu eine Software, welche aber sehr teuer ist...

Ich habe mir folgendes vorgestellt:
Alle CAD-Arbeitsplätze starten die genannte Software mittels einer Batch-Datei. Diese Batch-Datei schreibt außerdem in eine (zentrale) Log-Datei, dass User X das CAD-Programm am Tag Y zur Uhrzeit Z gestartet hat.
Bis hierher habe ich auch keine Probleme.
Sobald ein User die Software wieder schließt, soll die eingetragene Zeile in der Log-Datei logischerweise wieder gelöscht werden. Dadurch hätte ich zumindest immer eine aktuelle Übersicht, wer die Software verwendet.

Die aktuelle Batch-Datei sieht so aus:

@echo off
set log=\\samba\mitarbeiter\admin\Lic_usage.txt
echo %computername% – %username% – %date% %time% Software in Verwendung >> %log%
C:\pfad\zur\software.exe

Wie bekomme ich es hin, dass beim Schließen der Software die Zeile der Logfile des jeweiligen Users wieder gelöscht wird?

Oder habt ihr andere Ideen um dieses Problem zu lösen?

Grüßeb

Content-ID: 272964

Url: https://administrator.de/contentid/272964

Ausgedruckt am: 22.11.2024 um 17:11 Uhr

sk-it83
sk-it83 26.05.2015 um 16:41:23 Uhr
Goto Top
Moin,

es handelt sich aber nicht zufällig um Bentley oder? :D

Wobei ich mich frage wie du das mit deiner Logdatei dann unterbinden willst?

VG
psannz
psannz 26.05.2015 um 16:57:19 Uhr
Goto Top
Sers,

welches Lizenzprogramm wird denn verwendet? Eventuell FlexNet/LMtools von Flexera?

Grüße,
Philip
speedy-luis
speedy-luis 26.05.2015 um 17:00:09 Uhr
Goto Top
Hi,

genau, es handelt sich um Bentley face-sad

Der erste Step wäre vorerst nur eine Übersicht für die Admins. Damit hätten wir zumindest mal einen Vergleich mit den Übernutzungen von Bentley...

Gruß
speedy-luis
speedy-luis 26.05.2015 um 17:01:23 Uhr
Goto Top
Es wird leider kein Lizenzprogramm verwendet. Sonst wäre die Sache einiges einfacher...

mfg
chiefteddy
chiefteddy 26.05.2015 aktualisiert um 17:26:18 Uhr
Goto Top
Hallo,

wenn Du aus einer Batch ein anderes Programm aufrufst,

C:\pfad\zur\software.exe

bleibt die Batch solange aktiv bzw. offen, bis das aufgerufene Programm geschlossen wird. Danach werden die Zeilen/Befehle in der Batch, welche nach dem Programmaufruf kommen, abgearbeitet.

Dort kannst Du nun eine weiter Batch aufrufen (oder direkt in die Haupt-Batch programmieren), die die LOG-Datei nach einen Eintrag:

echo %computername% – %username% – %date% %time% Software in Verwendung

durchsucht und diesen löscht.

Problem ist nur, dass der User die offene Batch wärend er mit dem CAD-Programm arbeitet, nicht von Hand schließen darf (was ja normalerweise möglich ist), da sonst nach Beendigung des CAD-Programms die restlichen Batch-Zeilen nicht mehr ausgeführt werden.

Jürgen
Meierjo
Lösung Meierjo 26.05.2015, aktualisiert am 03.06.2015 um 15:34:09 Uhr
Goto Top
Hallo

Ich würde pro User / Rechnername eine %user%-%Computername%.log Datei erstellen lassen (leer oder nicht leer).
Wenn der User sein CAD wieder schliesst, würde die passende *.log gelöscht werden.
Würgt der User irrtümlicherweise die Batch ab, bleibt die *.log natürlich stehen, würde dann beim nächsten Starten und korrekt schliessen erst gelöscht, oder aber du lässt nachts eine Bereinigung laufen.
Somit wärst du aber auf der sicheren Seite, dass keine Lizenz zuviel gebraucht wird

Und in einem Unterverzeichnis könntest du in entsprechenden Logs auflisten, welcher User / Computer das CAD an welchem Tag geöffnet hatte (ich nehme an, die Lizenzen werden pro Tag verrechnet, nicht pro Start an einem bestimmten Computer)

Gruss Urs
Endoro
Endoro 26.05.2015 um 17:52:16 Uhr
Goto Top
Hey,
du könntest das über "start /wait" realisieren, wobei mir das Schreiben/Lesen/Umkopieren einer Textdatei in einer Multiuserumgebung gar nicht gefallen würde. Eine andere Möglichkeit wäre der Eintrag in einer Logdatei von jedem Arbeitsplatz in einem zentralen Ordner, das Programmende wird einfach auch eingetragen. Das Log ließe sich mit einem einfachen Skript nach einem Tag oder wann immer auswerten.

Gruß, Endoro
psannz
psannz 26.05.2015 aktualisiert um 17:57:33 Uhr
Goto Top
Ok... Habt ihr OpenNMS, Nagios, Icinga, oder ein sonstiges Netzwerkmonitoring Tool im Einsatz dass Windows Prozesse oder Dienste erfassen kann?

Alternativ? Periodisch ein Abfrageskript laufen lassen und die Ergebnisse entsprechend parsen.
Mittels PowerShell könnte die Abfrage so aussehen:

$computers = Get-Content -Path C:\apps\computers.txt
get-process -Name "CADapplication" -ComputerName $computers | ft name,machinename  
Borob14
Borob14 27.05.2015 um 13:45:17 Uhr
Goto Top
Hi,

das selber zu Programmieren wird aufwendig, Bentley stellt öfters was um, mittlerweile auf 1 Std umgestellt (Lizenz die genutzt wurde darf min 1 Std. nicht von anderer Person genutzt werden (sonst Strafe) Dazu kommen noch Sonderfälle wie Inroads die mehrere Lizenzen benutzen (Microstation + Inroads) und belegen.
Inroads selber startet nach dem Start z. Bsp. kurz das Inroads, beendet es und startet Microstation + Inroads -> viel Spaß beim abfangen...

Die stellen so oft was um, das merkst du dann wieder erst bei der nächsten Rechnung ;)

Dazu kommen noch die User die dann die Software auch auf diesem Wege starten müssen. Es gibt ja noch die Dateiverknüpfungen, Desktop Links, Startleiste, usw... da kommst du selber nicht auf einen grünen Zweig. Ich kann dir nur raten das über ne Fremdfirma machen zu lassen, außer du hast wirklich zu viel Zeit dich darum regelmäßig zu kümmern.

Wir nutzen die Fremdsoftware CC_Run / CC_watch (http://www.cadcom.de)-&g); sehr guter Support und reagieren schnell auf Updates die Bentley raus bringt. Preis Leistung OK wir mussten noch nie Strafe zahlen.

mfg Rob