Häufig gestellte Fragen
Teilen:
CmActLicenses
- Sollte eine CmActLicense nicht mehr verwendet werden können, werden folgende Informationen zur Untersuchung benötigt:
1. CmDust-Result.log (Anleitung folgt unten)
2. Alle CmActDiagLogs (Windows: C:\ProgramData\CodeMeter\Logs |Linux: /var/log/CodeMeter |MacOs: /Library/Logs/CodeMeter)
3. Dateien der betroffenen CmActLicense, ggf. alle (Windows: C:\ProgramData\CodeMeter\CmAct |Linux: /var/lib/CodeMeter/CmAct |MacOs: /Library/Application Support/CodeMeter/CmAct
4. Informationen zum Verhalten:
- Seit wann ist die CmActLicense nicht mehr verwendbar
- Wie häufig tritt das Verhalten auf z.B. nur direkt nach einem System-Neustart
- Funktioniert die CmActLicense wieder nach dem Durchführen der Lizenzreparatur ("Lizenz Reparieren"- Button im CodeMeter Kontrollzentrum)
- Wurde zuvor am System irgend etwas geändert, z.B. Windows/System Updates, Cleaning-Tools durchgeführt etc.
Anleitung zur Erstellung eines CmDust-Result.log
Windows
1. Aufrufen von CmDust über "Start | Programme | CodeMeter | Tools" im Startmenü.
Danach öffnet sich der Windows Explorer mit der Datei CmDust-Result.log. Die Textdatei liegt im jeweiligen Benutzerverzeichnis, das sich nach Ausführen von CmDust automatisch öffnet.
3. Senden der Datei an support@wibu.com.
macOS
Für macOS erstellen Sie die CmDust-Datei über das cmu-Kommandozeilen-Programm wie folgt:
1. Öffnen eines Terminal-Fensters.
2. Eingeben des Befehls cmu --cmdust --file CmDust.log
Durch den Zusatz --file ist das Speichern der Informationen in einer Datei möglich. Ohne den Zusatz erfolgt die Ausgabe der Informationen im Terminal-Fenster.
3. Senden der Datei an support@wibu.com.
Linux
Für Linux erstellen Sie die CmDust-Datei über das cmu-Kommandozeilen-Programm wie folgt:
1. Öffnen eines Terminal-Fensters.
2. Eingeben des Befehls cmu --cmdust --file CmDust.log
Durch den Zusatz --file ist das Speichern der Informationen in einer Datei möglich. Ohne den Zusatz erfolgt die Ausgabe der Informationen im Terminal-Fenster.
3. Senden der Datei an support@wibu.com.
Diese Datei können Sie sich mit einem Editor, z.B. Notepad, anzeigen lassen, damit Sie sehen, dass keine persönlichen Daten übermittelt werden: alle gespeicherten Information sind in Klartext. - Der CmContainer wird Rot mit dem gebrochenen Symbol angezeigt, wenn die CmActLicense ungültig oder gebrochen ist (siehe Screenshot).
※
Die Zustände "gebrochen" und "ungültig" können aus verschiedenen Gründen hervorgerufen werden:
Gebrochen
Dieser Zustand trifft ein, wenn die Bindungsmerkmale der Lizenz nicht mehr mit den Hardware-Merkmalen des Systems übereinstimmen.
Auftreten kann dies aber auch, wenn der Microsoft WMI (Windows Management Instrumentation) Dienst, über den die Bindungsmerkmale ausgelesen werden, nicht läuft.
Sollten es nur temporäre Schwierigkeiten sein, könnte das Betätigen der "Lizenz reparieren"-Schaltfläche die Lizenz wieder reparieren.
Welche Merkmale sich geändert haben, oder was tatsächlich passiert ist, ist nur mit einer Analyse von CmActDiagLog-Protokolldaten möglich.
Ungültig
Dieser Status tritt ein, wenn z.B. auf die CmActLicense-Daten nicht mehr zugegriffen werden kann oder die dynamischen Daten nicht mehr übereinstimmen. Diese Informationen werden von CodeMeter zur Laufzeit versteckt auf dem System abgelegt.
Die genaue Ursache ist meist nur mit einer Analyse der CmActDiagLog-Protokolldaten möglich.
Untersuchung
Zu Untersuchung sind die üblichen Informationen die zur CmActLicense-Analyse benötigt werden relevant.
Details dazu finden Sie im Knowledgebase-Item KB-0141.
Reparatur (für ISV)
Für Universal Firm Code (Firm Code 6.xxx.xxx, Seriennummer 130-xxxxxxx):
Muss das System schnell wieder laufen, muss ein neuer CmContainer erstellt und die Lizenz neu ausgestellt werden.
Um das Verhalten zu analysieren, empfiehlt Wibu-Systems den alten CmContainer nicht zu löschen.
Wenn dieser gelöscht wurde, ist eventuell die Analyse der Ursache (je nach Ursache) nicht mehr möglich.
Für CmActLicense Firm Codes (Firm Code 5.xxx.xxx, Seriennummer 127-/128-xxxxxxx):
Ist die CmActLicense gebrochen aufgrund der Bindungsmerkmale, kann über eine neue Aktivierung, eine neue Bindung durchgeführt werden.
Bitte beachten Sie, dass dies Firm Security Box (FSB)-Transaktionen kostet. - Um die Lizenz zu aktivieren, gehen Sie bite wie folgt vor:
1. Einspielen *.WibuCmLif-Datei.
cmu -i -f <*.WibuCmLif->
cmu -i -f Universal_Firm_Code_CmActLicense_6000010.WibuCmLif
2. Notieren der Seriennummer des neuen Containers (kann später
auch über cmu -l ausgelesen werden).
3. Erzeugen der Context-Datei.
cmu -s <Seriennummer des Containers> -c <FirmCode> -f <Dateiname>
cmu -s 130-3229388864 -c 6000010 -f context.WibuCmRaC
Diese Context-Datei können Sie jetzt entweder in der CodeMeter License
Central selbst oder im WebDepot verwenden, um eine Update-Datei für
diesen CmActLicense Container zu erzeugen.
4. Einspielen der Datei.
cmu -i -f <Dateiname>
cmu -i -f context.WibuCmRaC - Damit Anwender nicht versehentlich eine CmActLicense löschen, ist diese Schaltfläche im CodeMeter Kontrollzentrum standardmäßig deaktiviert, wenn das CodeMeter Runtime Kit installiert wurde. Bei der Installation des CodeMeterSDK ist die Schaltfläche hingegen standardmäßig aktiviert.
Lizenz explizit löschen
Um eine Lizenz explizit zu löschen, empfiehlt Wibu-Systems meistens die Verwendung von cmu32.exe über die Kommandozeile. Dazu wird wie folgt vorgegangen:
1. Öffnen des CodeMeter Command Prompt. Zu finden unter "Start | Alle Programme | CodeMeter | Tools | CodeMeter Command Prompt" (alternativ Klicken auf das Windows-Symbol und Eingabe von 'CodeMeter Command Prompt')
2. Ausführen des Befehls cmu32.exe --delete-cmact-license --serial <Seriennummer der CmActLicense> zum Löschen. Die Seriennummer kann dem CodeMeter Kontrollzentrum oder WebAdmin entnommen werden.
Dies hat den Vorteil, dass keine CmActLicense-Lizenzen versehentlich gelöscht werden.
Aktivieren der 'Lizenz löschen'-Schaltffläche
Über folgenden Registry-Eintrag können Sie aber auch den 'Lizenz löschen'-Schaltfläche im CodeMeter Kontrollzentrum aktiveren. Bitte beachten Sie aber, dass darüber beliebige CmActLicenses gelöscht werden können.
Dazu wird wie folgt vorgegangen:
1. Öffnen der Registry über Klicken des Windows-Symbols und Eingabe von 'regedit'.
2. Anlegen einer Zeichenkette unter HKEY_CURRENT_USER | SOFTWARE | WIBU-SYSTEMS | CodeMeterCC mit dem Namen "AllowCmActDelete" und Setzen auf einen Wert von 1.
3. Neustart von CodeMeter Kontrollzentrum zeigt dann 'Lizenz löschen'-Schaltffläche mit gewünschtem Verhalten.
Zum Deaktivieren der Schaltfläche folgen Sie dem Schritt 1 und setzen "AllowCmActDelete" auf den Wert 0 oder Sie löschen die Zeichenkette komplett. - Nein. CmActLicenses bzw. die CmActLicense-Lizenzcontainer können nicht auf eine anderes System verschoben werden.
Allerdings bieten viele Software-Hersteller an, Lizenzen in dem CmContainer zu deaktivieren, so dass diese in einen anderen CmContainer auf einem System erneut aktiviert werden können.
Das Deaktivieren von Lizenzen (Rückgabe) und die (erneute) Aktivierung der Lizenzen kann dabei über ein angepasstes WebDepot des Software-Herstellers vorgenommen werden. - Sollten plötzlich keine CmActLicenses in CodeMeter Kontrollzentrum mehr angezeigt werden, kann es daran liegen, dass CodeMeter als Anwendung läuft und nicht als Dienst gestartet wurde. Nur wenn CodeMeter als Dienst läuft, werden CmActLicenses unterstützt.
In diesem Falle zeigt das CodeMeter-Log auf dem Reiter "Ereignisse" auch den folgenden Eintrag an: “A CmActLicense license exists. CmActLicense requires running CodeMeter License Server as a service.”
Über "CodeMeter Kontrollzentrum | Menü Aktion | CodeMeter Dienst neustarten" können Sie die laufende Anwendung CodeMeter.exe beenden und den installierten CodeMeter-Dienst starten.
Dann sollten die CmActLicenses wieder geladen und in CodeMeter Kontrollzentrum angezeigt werden. - Dafür sammelt CodeMeter zunächst verfügbare Merkmale eines Rechners oder Gerätes, wie z.B. Mainboard, CPU, Festplatten, Betriebssystem-Informationen, Batterieseriennummer, TPM Chip, usw.
Anschließend werden die gefundenen Merkmale gewichtet. D.h. ist z.B. ein TPM Chip auslesbar, dann geht dieser natürlich mit einer sehr hohen Gewichtung in die Bindung ein.
Nun legen Sie als Software-Hersteller noch die Toleranz der Merkmale fest, die benötigt wird, damit die Bindung gültig bleibt.
Bei der Einstellung "Tight“ ist die Toleranz niedrig, und es müssen viele der originalen Merkmale noch erhalten sein. Bei "Loose“ ist die Toleranz hoch und es reichen weniger, wiedergefundene Merkmale aus, um den Rechner zu identifizieren. Dabei ist nicht unbedingt die Anzahl der Merkmale wichtig, sondern das 'Gesamtgewicht'.
Ändert sich ein Merkmal fehlen durch die Gewichtung eine mehr oder wenige große Anzahl Bindungsinformationen. Zusammen mit der Toleranz wird ermittelt, ob eine CmActLicense dadurch nun bricht oder gültig bleibt. - Der Fehler "CodeMeter License Server cannot open the file containing the Firm Item template, Error 269." bedeutet, dass das Firm-Item-Template CmActFI-(IhrFirmCode).wbb vom CodeMeter Runtime Server nicht gefunden wurde.
Dieses Template wird auf allen PCs benötigt, auf denen Sie CmActLicense-Lizenzen programmieren wollen. Gehen Sie dazu wie folgt vor:
1. Kopieren der Datei (CmActFI-(IhrFirmCode).wbb auf den betreffenden PC.
2. Importieren des Templates. Alternativ jeweils:
a) Drag&Drop in CodeMeter Kontrollzentrum.
b) Importieren über Navigation "Datei importieren" in CodeMeter Kontrollzentrum.
c) Verwenden CodeMeter Kommandozeilentool cmu(32)
cmu(32) -i -f<Pfad und Name der Datei>, z.B. cmu -i -f CmActFI-5010.wbb
Danach sollte das Erstellen Ihrer CmActLicense Firm Code-Lizenzen problemlos möglich sein. - Ein vielfaches Auftreten des Fehlers 'CmAct license control: CM 9008, A matching CmActLicense license already exists, Error 266. (ID: ERROR_0003)' im CodeMeter License Central-Protokoll sowie des Events WB266 im CodeMeter-Protokoll kann verursacht werden durch eine lokal gebundene bzw. nicht 'sauber' freigegebene CmActLicense-Lizenz auf CodeMeter License Central.
Ob dies der Fall ist, kann über die Eingabe des folgenden cmu-Kommandos auf der LicenseCentral Konsole oder über ssh Termial überprüft werden.
Eingabe:
cmu -l
Ausgabe:
Wird nun eine lokale CmActLicense-Lizenz angezeigt (Seriennummer 128-xxxxx oder 130-xxxxx), so liegt dieses Problem vor.
Zur Lösung reicht es, den CodeMeter-Daemon (CodeMeterLin) über die Konsole neu zu starten:
Eingabe:
sudo service codemeter restart
Die 'alte, temporäre' CmActLicense-Lizenz sollte nun sauber entladen sein.
Dies kann über erneute Eingabe von "cmu -l" überprüft werden.
Nun sollte keine CmActLicense-Seriennummer mehr angezeigt werden. - Seit Juli 2018 wird im Testkit kein Firm Security Box (FSB)-Eintrag für Protection Only-Lizenzen mehr ausgeliefert.
Deshalb haben die Testkit-Einträge nicht mehr die Möglichkeit, mit dem Firm Code 6000010 eine Protection Only-Lizenz zu programmieren. Bezüglich der Bindungsart 'None' können aus unserer Sicht alle Tests auch mit einer 'Trial' License gemacht werden.
Sollte trotzdem eine Protection Only-Lizenz benötigt werden, kann unser Vertrieb diese als zusätzliche Lizenz (102688:100001) wieder ausstellen, die über license.wibu.com aktiviert werden kann.
Diese Lizenz ist wie die normale CodeMeter Testkit-Lizenz zeitlich limitiert (ca. 1 Jahr). - Wenn eine Smart Bind CmActLicense mit CodeMeter Version 6.90 oder neuer eingespielt wurde, wird ein neuer Mechanismus zum Erkennen von signifikanten Änderungen (Zurückspielen eines Snapshots oder Klonen der VM) auf virtuellen Maschinen verwendet. Wenn eine solche Änderung erkannt wird, bricht die Lizenz sofort, um Manipulationsversuche zu verhindern.
Dieser Mechanismus basiert auf dem Standard der "Generation ID" von Microsoft und wird von allen gängigen Virtualisieren unterstützt.
Leider verhält sich hier Azure inkorrekt und ändert diese Generation ID beim Aus- und Einschalten, als wäre hier eine signifikante Änderung aufgetreten.
Dazu gibt es auch in des Azure Community einen bekannten Bug Report: https://feedback.azure.com/d365community/idea/454c4364-c125-ec11-b6e6-000d3a4f0f1c
Ein normaler Neustart löst dies nicht aus. Es passiert nur bei einem getrennten Aus- und Einschalten.
Ab CodeMeter Version 7.30a haben wir daher eine Abhilfemaßnahme eingebaut, bei dem CodeMeter erkennt, wenn die CmActLicense in Azure aktiviert wird und diesen Mechanismus bei neuen CmActLicenses nicht mehr verwendet.
CmActLicensenses, die vor dem Update auf die Version 7.30a aktiviert wurden, verwenden weiterhin die Generation ID. Es ist immer relevant, welche CodeMeter Version installiert war, als der CmActLicenses Container erstmalig aktiviert und somit die Bindung berechnet wurde.
Dieses Feature ist aktuell allerdings nur für Universal Firm Code CmActLicenses (FirmCode 6.xxx.xx) eingebaut.
Mögliche Workarounds, wenn Sie die 7.30a oder Universal Firm Code nicht verwenden können, sind:
- SmartBind *nicht* verwenden
- die CmActLicense-Lizenz auf einem anderen System aktivieren, das nicht in Azure läuft und über die Netzwerkserver-Funktionalität verwenden
- die Lizenz vor einem Neustart an CodeMeter License Central zurückgeben und danach wieder in einem neuen Container aktivieren - Bei einer CmActLicense-Lizenz werden Teile des CmContainers an verschiedenen Orten auf dem System gespeichert. Dies sind die sogenannten dynamischen Daten. Diese Teile werden nun beim Laden alle eingelesen und müssen zusammenpassen, damit die CmActLicense-Lizenz erfolgreich entschlüsselt werden kann.
D.h. wenn die CmActLicense-Informationen, nicht mehr gelesen/geschrieben werden können, z.B. weil der Zugriff nicht möglich ist, die Informationen gelöscht/überschrieben wurden, kann es zu einer ungültigen CmActLicense-Lizenz kommen.
In der Praxis sind meistens, Anti-Viren-Programme, Backup-Programme, Cleaning-Tools, (teilweise) wiederhergestellte Daten/Backups, etc. die Ursache für ungültige CmActLicense-Lizenz.
Wibu-Systems empfiehlt daher CodeMeter bzw. den Ordner "C:\ProgramData\CodeMeter\CmAct" in entprechende Anti-Viren-Programme, Backup-Programme, etc. als Ausnahme einzutragen. Ansonsten sollten Sie darauf achten, keine versteckten CmActLicense-Informationen zu löschen bzw. zu überschreiben.
Im Falle von 'Protection Only'-Lizenzen ist es aber meistens möglich, diese einfach erneut einzuspielen, und die CmActLicense-Lizenz damit erneut zu aktivieren. Hierzu muss bei der Erstellung der 'Protection Only'- Lizenz die Option "ReImport" mit angegeben worden sein, was Wibu-Systems vor allem bei 'Protection Only'-Lizenzen empfiehlt.