Skip to Content
Neue Version 12 verfügbar 🎉

Befehlszeilenreferenz Server

Alle Optionen der Befehlszeile lic, gruppiert wie in der Ausgabe von lic —help.

lic <assembly|licensefile> [<other assemblies>...] [options]

Das erste Argument ist entweder die Assembly, für die die Lizenz bestimmt ist und aus der lic den Assemblynamen, die Version, das Gebietsschema und das Token des öffentlichen Schlüssels in die Lizenz übernimmt, oder eine vorhandene Lizenzdatei, als XML oder als Zeichenfolge, die aktualisiert oder geprüft werden soll. Weitere Assemblys fügen der Lizenz ebenfalls ihre Identität hinzu. Obligatorische Argumente stehen in spitzen Klammern, optionale in eckigen Klammern. Das Präfix --[no] kennzeichnet einen Schalter, der negiert werden kann.

Optionen lassen sich auf ihr kürzestes eindeutiges Präfix abkürzen, sodass --comp die Option --component wählt, und mehrere haben einen Alias, der in den folgenden Überschriften in Klammern steht. Optionen mit Schlüssel-Wert-Paaren wie --licensee und --trial werden einmal je Paar wiederholt. Datumsangaben akzeptieren jede Zeichenfolge aus Datum und Uhrzeit, die das aktuelle Gebietsschema auswerten kann, und ISO 8601 (2027-09-01) funktioniert immer.

Führen Sie lic --help <option> aus, um die ausführliche Beschreibung einer Option zu erhalten, oder lic --help --format json für den gesamten Satz der Optionen als maschinenlesbares Dokument, siehe KI-freundlicher Modus.

Verschiedenes

—help [option] (-h, -?)

Zeigt die Aufrufsyntax mit jeder Option und einer kurzen Beschreibung an. Mit dem Namen einer Option zeigt der Schalter die ausführliche Beschreibung dieser Option an. Zusammen mit --format json oder ndjson gibt er das Schema der Optionen als JSON aus.

lic --help lic --help sign lic --help --format json

Zeigt beim Start das Copyright-Banner an oder unterdrückt es. Das Banner ist standardmäßig eingeschaltet und wird im Ausgabemodus json und ndjson immer unterdrückt.

—license [path]

Ohne Argument zeigt lic die verwendete Lizenz an und beendet den Lauf. Mit einem Argument teilt die Option dem Tool mit, wo dessen eigene Lizenz liegt: der Pfad einer Lizenzdatei, ein Ordner, in dem nach babel.licenses gesucht wird, oder env:VARIABLE, um einen Lizenzschlüssel aus einer Umgebungsvariablen zu lesen. Die Option kann wiederholt werden. Ohne sie sucht das Tool babel.licenses neben seiner ausführbaren Datei und danach in dem Pfad, den BABEL_LICENSE_PATH nennt.

lic --license lic MyApp.dll --license /opt/babel/babel.licenses ... lic MyApp.dll --license env:BABEL_LICENSE ...

—verbose <n> (-v)

Legt die Ausführlichkeit der Konsolenausgabe fest. 0 gibt nichts aus, 1 (Standard) gibt die normalen Meldungen aus, und ein Wert über 10 fügt die Debugausgabe hinzu, einschließlich einer Auflistung aller Eingabevariablen.

—version

Zeigt die Assembly-, Produkt- und Dateiversion an und beendet den Lauf. Mit --format json gibt der Schalter Version, Laufzeit und Plattform als JSON aus.

—noconfig

Überspringt die Standardwerte der Optionen, die in der Konfigurationsdatei des Tools (lic.exe.config) gespeichert sind.

—format <name> (—fmt)

Die Ausgabeformate der CLI sind seit 11.8 verfügbar.

Wählt entweder das Ausgabeformat der Lizenz oder das Ausgabeformat der Befehlszeile. Die beiden Wertemengen überschneiden sich nicht. Eine Option deckt daher beide ab, und beide können in derselben Befehlszeile stehen.

WertBedeutung
xmlStandard. Eine XML-Lizenzdatei (.licenses), das Format, das der Client Babel.Licensing aus einer Datei validiert.
serialEine Lizenz als Zeichenfolge in der Standardcodierung für Zeichenfolgen, geeignet für eine Seriennummer, die der Benutzer eintippt.
base32Eine Lizenz als Zeichenfolge, in Base32 codiert (Großbuchstaben und Ziffern).
asciiEine Lizenz als Zeichenfolge, in lesbarem ASCII codiert, das kompakteste der Zeichenfolgenformate.
textAusgabe der Befehlszeile: die standardmäßige, für Menschen lesbare Konsolenausgabe.
jsonAusgabe der Befehlszeile: ein JSON-Dokument auf der Standardausgabe, das lic.cli.v1 entspricht.
ndjsonAusgabe der Befehlszeile: zeilengetrenntes JSON, ein Ereignis pro Zeile, das ausgegeben wird, sobald es entsteht.

Lizenzen als Zeichenfolge werden als eine einzige Textzeile in die Datei aus --output geschrieben. Sie haben denselben Inhalt wie die XML-Form und werden auf dieselbe Weise validiert, über StringLicense in der Clientbibliothek.

lic MyApp.dll --keyfile ecdsa.pem --sign --format serial --output MyApp.serial lic MyApp.dll --keyfile keys.pem --sign --format json --quiet --strict-exit lic MyApp.dll --keyfile ecdsa.pem --sign --format base32 --format ndjson

—keygen [type] (—kg)

Erzeugt ein neues Schlüsselpaar und schreibt es im PEM-Format in die Datei, die --keyfile nennt. Der Typ ist rsa (Standard) oder ecdsa. Mit --keysize wählen Sie die Stärke. Der private Schlüssel in der Datei signiert Lizenzen und muss geheim bleiben, während --publickey die öffentliche Hälfte für die Anwendung ausliest.

lic --keygen rsa --keysize 2048 --keyfile keys.pem lic --keygen ecdsa --keysize 256 --keyfile ecdsa.pem

RSA-Schlüssel signieren XML-Lizenzen mit dem Algorithmus rsa oder dsig. ECDSA-Schlüssel ergeben die kürzesten Lizenzen als Zeichenfolge und sind die übliche Wahl für Seriennummern.

—keysize <size> (—ks)

Legt die Schlüsselgröße für --keygen fest. RSA akzeptiert Größen von 384 bis 4096 Bit, ECDSA akzeptiert 112, 192, 256, 384 oder 521 Bit. Ein größerer ECDSA-Schlüssel ergibt eine längere Seriennummer.

—[no]keyinfo

Ob die Informationen zum öffentlichen Schlüssel in das Element der RSA-Signatur einer XML-Lizenz aufgenommen werden. Sie können entfallen, wenn die lizenzierte Assembly einen starken Namen hat, weil der Client den öffentlichen RSA-Schlüssel dem starken Namen entnimmt, um die Lizenz zu validieren.

—publickey (—pk)

Gibt den öffentlichen Schlüssel des mit --keyfile angegebenen Schlüsselpaars aus, für RSA-Schlüssel, ECDSA-Schlüssel und Schlüssel für digitale XML-Signaturen. Betten Sie diesen Wert in die Anwendung ein, die damit Lizenzen validiert.

lic --publickey --keyfile keys.pem

—[no]xmldeclaration

Ob die XML-Deklaration an den Anfang einer XML-Lizenzdatei geschrieben wird. Standardmäßig eingeschaltet.

—encoding <name>

Legt die Zeichencodierung der XML-Lizenzdatei über den Namen der Codierung fest (utf-8, utf-16, us-ascii und jede andere auf dem Rechner registrierte Codierung). Standardmäßig wird die Datei in UTF-16 mit einer Bytereihenfolge-Marke geschrieben. Übergeben Sie utf-8 für eine Datei, die sich leichter einsehen und einbetten lässt.

—showhardwareinfo (—show-hardware-info)

Gibt die Informationen aus, aus denen auf dem aktuellen Rechner der Hardwareschlüssel berechnet wird: Systemname, UUID, Hersteller, Produktname, Seriennummern von BIOS und Hauptplatine, Betriebssystem, Arbeitsspeicher, ob eine virtuelle Maschine erkannt wurde, und die Identität der CPU. Nützlich in Supportfällen, in denen eine hardwaregebundene Lizenz nicht validiert wird.

—hardwareid <component> (—hardware-id, —hwid)

Berechnet den Hardwareschlüssel des aktuellen Rechners und gibt ihn als HardwareKey=XXXXX-XXXXX-XXXXX-XXXXX-XXXXX aus. Die optionale Liste der Komponenten wählt, woraus der Schlüssel abgeleitet wird: cpu, ethernet (MAC-Adresse), disk (Seriennummer), motherboard, bios, computername (Standard) oder all. Diesen Schlüssel übergeben Sie an --hardware key=, wenn Sie eine hardwaregebundene Lizenz ausstellen, und ihn berechnet die Anwendung bei der Validierung mit denselben Komponenten.

lic --hardwareid cpu,disk,computername

—salt [hex string|size] (-s)

Fügt der Berechnung des Hardwareschlüssels Zufallsdaten hinzu, damit zwei Produkte, die an denselben Rechner gebunden sind, nicht denselben Schlüssel haben. Übergeben Sie eine hexadezimale Zeichenfolge, um ein festes Salt zu verwenden, oder eine Größe, um eines zu erzeugen. Das erzeugte Salt wird als Salt= ausgegeben und muss bei der Validierung erneut verwendet werden.

—register <assembly>

Lädt vor der Verarbeitung eine Erweiterungs-Assembly. Eine Erweiterung kann benutzerdefinierte Einschränkungstypen für --restriction, benutzerdefinierte Signaturanbieter für --sign und Dienste wie eine alternative Hardware-Identifikation bereitstellen. Die Option kann wiederholt werden.

—[no]quiet (-q)

Verfügbar seit 11.8.

Unterdrückt das Copyright-Banner und jede interaktive Eingabeaufforderung, sodass der Befehl nie auf eine Eingabe wartet: Ein fehlendes --keypwd führt zu einem ausdrücklichen Fehler, statt nach dem Passwort zu fragen. Gedacht für CI-Pipelines und unbeaufsichtigte Läufe. Siehe KI-freundlicher Modus.

—[no]strict-exit

Verfügbar seit 11.8.

Gibt einen semantischen Exitcode zurück statt des standardmäßigen 0 für Erfolg und 1 für jeden Fehlschlag: 10 ungültige Argumente, 20 Eingabedatei nicht gefunden, 30 Fehler bei der Lizenzverarbeitung, 40 Lizenzierungsfehler, 50 Schlüssel- oder Signierfehler. Die Codes stimmen mit denen des Obfuscators überein. Siehe KI-freundlicher Modus.

Lizenz

—id [licid]

Legt die Lizenz-ID fest. Ohne Argument wird eine neue ID erzeugt. Über die ID sprechen --update und --verify eine einzelne Lizenz in einer Datei an, die mehrere enthält.

—type <type>

Legt den Lizenztyp fest, einen freien Text wie Standard, Professional oder Trial, den die Anwendung lesen kann, um eine Edition zu wählen.

—sites <number>

Legt die Anzahl der Standorte, also der Plätze, fest, die die Lizenz abdeckt.

—issuedate [date]

Legt das Ausstellungsdatum fest. Ohne Argument werden das aktuelle Datum und die aktuelle Uhrzeit verwendet.

—expiredate <date>

Legt das Ablaufdatum fest, entweder als Zeichenfolge aus Datum und Uhrzeit oder als Anzahl von Tagen ab heute.

lic MyApp.dll --expiredate 2027-09-01 ... lic MyApp.dll --expiredate 365 ...

—supportexpiredate <date>

Legt das Datum fest, an dem die Wartung des Produkts abläuft, unabhängig von der Lizenz selbst.

—[no]assembly <file|name> (—asm, —no-asm)

Fügt der Lizenz die Identität einer weiteren Assembly hinzu, aus einer Datei oder aus einem Assemblynamen. Die Option kann wiederholt werden und akzeptiert Platzhalter. --noassembly entfernt alle Informationen zu Assemblys und ergibt damit eine Lizenz, die nicht an eine bestimmte Assembly gebunden ist.

lic MyApp.dll --assembly "MyApp.Core, Version=2.1.0.0" ... lic MyApp.dll --assembly "*, Version=" ... lic MyApp.dll --noassembly ...

—licensee <key=value>

Legt die Angaben zum Lizenznehmer fest, ein Paar je Option: id, name, company und email.

lic MyApp.dll --licensee id=C-1001 --licensee name="Contoso" --licensee company="Contoso Ltd" --licensee email=info@contoso.com ...

—product <key=value>

Legt die Angaben zum Produkt fest, ein Paar je Option: id, name, version, copy (Copyright-Hinweis), descr (Beschreibung) und url.

lic MyApp.dll --product id=MYAPP --product name="MyApp" --product version=2.1 --product url=https://contoso.example ...

—component <name>

Fügt eine lizenzierte Komponente hinzu, für Produkte, die einzelne Komponenten oder Module einer Assembly lizenzieren. Die Option kann wiederholt werden.

—feature <file|key=value>

Fügt eine Lizenzfunktion hinzu oder aktualisiert sie. Funktionen sind die Schalter, die die Anwendung prüft, um Teile des Produkts freizuschalten. Mit key=value erhält die Funktion den Schlüssel als Namen und den Wert als Daten. Mit einem Dateipfad oder einem Platzhalter wird jede Datei zu einer Funktion, die nach der Datei benannt ist und deren Inhalt als Daten trägt. Mit def=file liefert eine externe XML-Datei die vollständige Definition der Funktion, einschließlich Ablaufdaten und Beschreibung.

lic MyApp.dll --feature Pro=1 --feature Export=csv,xlsx ... lic MyApp.dll --feature "features/*.txt" ... lic MyApp.dll --feature def=features.xml ...

—field <file|key=value>

Fügt ein Lizenzfeld hinzu oder aktualisiert es. Ein Feld ist ein benannter Wert, den die Anwendung liest: die Anzahl der Plätze, eine Konfiguration, ein Passwort für die Codeverschlüsselung und so weiter. Es gelten dieselben drei Formen wie bei --feature: key=value, eine Datei, deren Name und Inhalt zum Feld werden, oder def=file für eine XML-Definition.

lic MyApp.dll --field Seats=25 --field Region=EU ...

—sign [type]

Signiert die Lizenz mit dem Schlüsselpaar, das --keyfile oder --keyname angibt. Der optionale Typ wählt den Algorithmus: rsa (Standard bei einem RSA-Schlüssel), ecdsa (bei einem ECDSA-Schlüssel) oder dsig, den Standard für digitale XML-Signaturen, mit einem RSA-Schlüssel. Der Algorithmus muss zum Schlüssel passen: Ein RSA-Schlüssel kann keine ECDSA-Signatur erzeugen und umgekehrt.

lic MyApp.dll --keyfile keys.pem --sign ... lic MyApp.dll --keyfile keys.pem --sign dsig ... lic MyApp.dll --keyfile ecdsa.pem --sign ecdsa --format serial ...

Ohne --sign wird die Lizenz ohne Signatur geschrieben, und die Clientbibliothek weist sie zurück. --keyfile allein stellt nur den Schlüssel bereit, es signiert nicht.

—[no]verify (—validate)

Prüft die Signatur der eingegebenen Lizenzdatei mit dem Schlüssel, den --keyfile oder --keyname angibt. Dafür genügt der öffentliche Schlüssel. Das Tool meldet verified successfully oder is not valid, und mit --strict-exit endet eine fehlgeschlagene Prüfung mit dem Code 30.

lic MyApp.licenses --verify --keyfile keys.pem

—update [licid|all]

Aktualisiert eine Lizenz in der eingegebenen Lizenzdatei, statt eine neue zu erstellen: Jeder Lizenzschalter auf der Befehlszeile ersetzt den entsprechenden Wert, und die Datei wird zurückgeschrieben. Ohne Argument wird die erste Lizenz der Datei aktualisiert. Übergeben Sie eine Lizenz-ID, um eine einzelne Lizenz anzusprechen, oder all, um jede Lizenz der Datei zu aktualisieren. Übergeben Sie erneut --sign, um die geänderte Lizenz neu zu signieren.

lic MyApp.licenses --update --keyfile keys.pem --sign --licensee company="Contoso Ltd" --field Seats=50

Lizenzeinschränkungen

Jede Option für eine Einschränkung erwartet Paare der Form key=value, eines je Option, und kann wiederholt werden. Jede Einschränkung akzeptiert id=<id>, um ihre ID festzulegen, und expire=<date>, um ihr ein eigenes Ablaufdatum zu geben. Wie die Clientbibliothek jede einzelne auswertet, beschreibt die Seite Lizenzeinschränkungen.

—trial <key=value>

Fügt eine Testeinschränkung hinzu oder aktualisiert sie:

SchlüsselBedeutung
days=<n>Anzahl der Tage, an denen die Software nach dem ersten Start verwendet werden kann.
time=<timespan>Insgesamt zulässige Nutzungszeit.
instances=<n>Anzahl der Instanzen, die gleichzeitig laufen können.
terms=<text>Text der Bedingungen, der für die Testversion angezeigt wird.
lic MyApp.dll --trial days=30 --trial instances=2 ...

—hardware <key=value>

Fügt eine Hardware-Einschränkung hinzu oder aktualisiert sie und bindet die Lizenz damit an einen Rechner: key=<key> ist der Hardwareschlüssel, der mit --hardwareid auf dem Zielrechner berechnet wurde, und data=<data> bettet zusätzliche Hardwaredaten ein.

lic MyApp.dll --hardware key=GPHI6-128DI-6196C-KN5LV-BCDRE ...

—domain <key=value>

Fügt eine Domäneneinschränkung hinzu oder aktualisiert sie: name=<name> ist die Netzwerkdomäne, zu der der Rechner gehören muss, und role=<role> die Netzwerkrolle.

—usage <key=value>

Fügt eine Nutzungseinschränkung hinzu oder aktualisiert sie: type=<context> beschränkt die Lizenz auf den Kontext Runtime oder Designtime, vm=<true|false> erlaubt oder verbietet die Ausführung in einer virtuellen Maschine, und processlist=<list> nennt die Prozesse, die die Lizenz verwenden dürfen.

lic MyApp.dll --usage processlist=proc1,proc2,proc3 --usage vm=false ...

—beta <key=value>

Fügt eine Beta-Einschränkung für Vorabversionen hinzu oder aktualisiert sie: build=<text> legt den Typ des Beta-Builds fest, und changes=<text> beschreibt die jüngsten Änderungen.

—restriction <name:key=value>

Fügt eine benutzerdefinierte Einschränkung, die über ihren Namen identifiziert wird, mit den angegebenen Schlüssel-Wert-Paaren hinzu oder aktualisiert sie. Den Typ der Einschränkung muss eine Erweiterungs-Assembly bereitstellen, die mit --register registriert wurde. Ohne sie meldet das Tool, dass keine Lizenzfactory gesetzt ist.

lic MyApp.dll --register Contoso.Licensing.dll --restriction "Region:name=EU" ...

Ausgabedateien

—output <file> (—out)

Legt die Ausgabedatei fest. Standardmäßig wird die Lizenz neben der Eingabedatei als <assembly file>.licenses gespeichert.

—logfile [file] (—log)

Leitet die Konsolenausgabe in eine Protokolldatei um. Ohne Argument wird das Protokoll nach der Ausgabedatei benannt und erhält die Erweiterung .log.

—makeproject [file] (—mp)

Speichert die gesamte Befehlszeile als MSBuild-Projektdatei, die die Aufgabe Lic mit denselben Einstellungen ausführt. Ohne Argument wird das Projekt nach der Ausgabedatei benannt und erhält die Erweiterung .lcproj. Die Lizenz wird ebenfalls erzeugt. Siehe MSBuild-Aufgabe.

Eingabedateien

—keyfile <file> (—kf)

Die Schlüsseldatei, mit der die Lizenz signiert oder geprüft wird. Unterstützte Formate sind PEM (wie von --keygen geschrieben), SNK-Schlüsseldateien für starke Namen und PFX-Zertifikate. Eine PFX-Datei braucht in der Regel --keypwd.

—keyname <container> (—kn)

Signiert oder prüft mit einem Schlüsselpaar, das in einem Schlüsselcontainer des Betriebssystems gespeichert ist und über den Namen des Containers angegeben wird, statt mit einer Datei.

—keypwd <password> (—kp)

Das Passwort einer PFX-Schlüsseldatei. Ohne diese Option fragt das Tool nach dem Passwort. Mit --quiet schlägt es fehl, statt zu fragen. Bewahren Sie das Passwort auf einem Buildserver in einer Umgebungsvariablen auf und lassen Sie die Variable auf der Befehlszeile auflösen.

—project <file> (—prj)

Führt lic mit den Einstellungen aus, die in einer Projektdatei .lcproj gespeichert sind, wie sie --makeproject erzeugt oder wie sie von Hand geschrieben wurde. Schalter auf der Befehlszeile werden zusätzlich zu den Einstellungen des Projekts angewendet.

Lange und kurze Optionen

Lange Optionen werden mit zwei Bindestrichen eingeleitet, kurze Optionen und einbuchstabige Aliase mit einem: --verbose 2 und -v 2 sind gleichwertig, ebenso --keyfile und --kf. Eine lange Option lässt sich auf jedes Präfix abkürzen, das nicht mehrdeutig ist. Schalter, die mit --[no] gekennzeichnet sind, werden mit dem Präfix no oder no- ausgeschaltet. --nologo, --no-logo und --noassembly sind also alle gültig.

Exitcodes

Standardmäßig gibt der Prozess 0 bei Erfolg und 1 bei jedem Fehlschlag zurück. Mit --strict-exit wird stattdessen die Fehlerklasse zurückgegeben. Dieselbe Klasse wird in der JSON-Ausgabe immer als exitReason gemeldet, mit oder ohne --strict-exit.

ExitcodeexitReasonBedeutung
0successDer Befehl wurde ohne Fehler abgeschlossen.
10invalidArgumentsDie Befehlszeile konnte nicht ausgewertet werden oder enthielt einen ungültigen Wert.
20inputNotFoundDie Assembly, die Lizenzdatei oder eine andere erforderliche Eingabe wurde nicht gefunden.
30processingFailureDie Lizenzverarbeitung ist fehlgeschlagen, auch bei einer Signatur, deren Prüfung fehlschlug.
40licensingFailureDie eigene Lizenz des Tools fehlt, ist ungültig oder abgelaufen.
50keyOrSigningFailureEin Schlüssel konnte nicht geladen werden, oder eine kryptografische Operation ist fehlgeschlagen.
Last updated on