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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 272964
Url: https://administrator.de/contentid/272964
Ausgedruckt am: 22.11.2024 um 17:11 Uhr
9 Kommentare
Neuester Kommentar
Hallo,
wenn Du aus einer Batch ein anderes Programm aufrufst,
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:
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
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
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
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
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
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
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:
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
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
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