コマンドラインリファレンス Server
lic コマンドラインのすべてのオプションを、lic —help の出力と同じグループに分けて説明します。
lic <assembly|licensefile> [<other assemblies>...] [options]最初の引数は、ライセンスの対象となるアセンブリか、更新または検証する既存のライセンスファイル(XML または文字列)です。アセンブリを指定すると、lic はアセンブリの名前、バージョン、カルチャ、公開キートークンをライセンスに記録します。追加のアセンブリを指定すると、その ID もライセンスに追加されます。必須の引数は山かっこで、省略可能な引数は角かっこで示します。--[no] プレフィックスは、否定形を指定できるスイッチを表します。
オプションは、あいまいにならない最短のプレフィックスまで省略できます。たとえば、--comp は --component を選択します。エイリアスを持つオプションもあり、以降の見出しではかっこ内に示しています。--licensee や --trial のようなキーと値のオプションは、ペアごとに 1 回ずつ繰り返して指定します。日付には、現在のカルチャで解析できる任意の日時文字列を指定でき、ISO 8601(2027-09-01)は常に使用できます。
1 つのオプションの詳細な説明を表示するには lic --help <option> を、オプション全体を機械可読のドキュメントとして出力するには lic --help --format json を実行します。AI に適したモードを参照してください。
その他
—help [option] (-h, -?)
すべてのオプションと短い説明を含む、使用方法のメッセージを表示します。オプション名を指定すると、そのオプションの詳細な説明を表示します。--format json または ndjson と組み合わせると、オプションのスキーマを JSON として出力します。
lic --help
lic --help sign
lic --help --format json—[no]logo
起動時に著作権バナーを表示または抑止します。バナーは既定でオンになっており、json と ndjson の出力モードでは常に抑止されます。
—license [path]
引数を指定しない場合は、lic が使用しているライセンスを表示して終了します。引数を指定する場合は、ツール自体のライセンスがある場所を渡します。ライセンスファイルのパス、babel.licenses を検索するフォルダー、または環境変数からライセンスキーを読み取る env:VARIABLE を指定できます。このオプションは繰り返し指定できます。このオプションがない場合、ツールは実行可能ファイルと同じ場所で、次に BABEL_LICENSE_PATH が示すパスで babel.licenses を探します。
lic --license
lic MyApp.dll --license /opt/babel/babel.licenses ...
lic MyApp.dll --license env:BABEL_LICENSE ...—verbose <n> (-v)
コンソールの詳細レベルを設定します。0 は何も出力せず、1(既定)は通常のメッセージを出力し、10 を超える値では、すべての入力変数のダンプを含むデバッグ出力が追加されます。
—version
アセンブリ、製品、ファイルのバージョンを表示して終了します。--format json を指定すると、バージョン、ランタイム、プラットフォームを JSON として出力します。
—noconfig
ツールの構成ファイル(lic.exe.config)に保存されている既定のオプション値を読み込みません。
—format <name> (—fmt)
CLI の出力形式は 11.8 以降で使用できます。
ライセンスの出力形式またはコマンドラインの出力形式を選択します。2 つの値のセットは重複しないため、1 つのオプションで両方に対応でき、同じコマンドラインに両方を指定できます。
| 値 | 意味 |
|---|---|
xml | 既定。XML ライセンスファイル(.licenses)で、Babel.Licensing クライアントがファイルから検証する形式です。 |
serial | 既定の文字列エンコーディングによる文字列ライセンス。ユーザーが入力するシリアル番号に適しています。 |
base32 | Base32(大文字と数字)でエンコードされた文字列ライセンス。 |
ascii | 読みやすい ASCII でエンコードされた文字列ライセンス。文字列形式の中で最もコンパクトです。 |
text | コマンドラインの出力:人が読むための既定のコンソール出力。 |
json | コマンドラインの出力:標準出力に書き出される 1 つの JSON ドキュメントで、lic.cli.v1 に準拠します。 |
ndjson | コマンドラインの出力:改行区切りの JSON。1 行に 1 イベントで、生成されるたびにストリームとして出力されます。 |
文字列ライセンスは、--output のファイルに 1 行のテキストとして書き出されます。内容は XML 形式と同じで、クライアントライブラリの StringLicense を通じて同じように検証されます。
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)
新しいキーペアを生成し、--keyfile で指定したファイルに PEM 形式で書き出します。種類は rsa(既定)または ecdsa です。強度は --keysize で選択します。ファイル内の秘密キーはライセンスに署名するためのもので、外部に漏らしてはなりません。一方、--publickey は、アプリケーション用に公開キーの部分を取り出します。
lic --keygen rsa --keysize 2048 --keyfile keys.pem
lic --keygen ecdsa --keysize 256 --keyfile ecdsa.pemRSA キーは、rsa または dsig アルゴリズムで XML ライセンスに署名します。ECDSA キーは最も短い文字列ライセンスを生成するため、シリアル番号には通常こちらを選びます。
—keysize <size> (—ks)
--keygen のキーサイズを設定します。RSA では 384 から 4096 ビットのサイズを、ECDSA では 112、192、256、384、521 ビットのいずれかを指定できます。ECDSA キーが大きいほど、シリアル番号は長くなります。
—[no]keyinfo
XML ライセンスの RSA 署名要素に、公開キーの情報を含めるかどうかを指定します。ライセンス対象のアセンブリに厳密名がある場合は省略できます。クライアントが厳密名から RSA 公開キーを取り出して、ライセンスを検証するためです。
—publickey (—pk)
--keyfile で指定したキーペアの公開キーを表示します。RSA、ECDSA、XML デジタル署名のキーに対応しています。この値をアプリケーションに埋め込むと、アプリケーションはこの値を使ってライセンスを検証します。
lic --publickey --keyfile keys.pem—[no]xmldeclaration
XML ライセンスファイルの先頭に XML 宣言を書き出すかどうかを指定します。既定でオンです。
—encoding <name>
XML ライセンスファイルの文字エンコーディングを、エンコーディング名(utf-8、utf-16、us-ascii、およびコンピューターに登録されているその他のエンコーディング)で設定します。既定では、ファイルはバイトオーダーマーク付きの UTF-16 で書き出されます。内容を確認したり埋め込んだりしやすいファイルにするには、utf-8 を指定します。
—showhardwareinfo (—show-hardware-info)
現在のコンピューターで、ハードウェアキーの計算に使用される情報を表示します。システム名、UUID、製造元、製品名、BIOS とマザーボードのシリアル番号、オペレーティングシステム、メモリ、仮想マシンが検出されたかどうか、CPU の識別情報です。ハードウェアに紐付けたライセンスが検証に通らないサポート事例で役立ちます。
—hardwareid <component> (—hardware-id, —hwid)
現在のコンピューターのハードウェアキーを計算し、HardwareKey=XXXXX-XXXXX-XXXXX-XXXXX-XXXXX の形式で表示します。省略可能なコンポーネントのリストで、キーの算出元を選択します。cpu、ethernet(MAC アドレス)、disk(シリアル番号)、motherboard、bios、computername(既定)、all を指定できます。このキーは、ハードウェアに紐付けたライセンスを発行するときに --hardware key= に渡す値であり、アプリケーションが検証時に同じコンポーネントで計算する値でもあります。
lic --hardwareid cpu,disk,computername—salt [hex string|size] (-s)
ハードウェアキーの計算にランダムなデータを加え、同じコンピューターに紐付けた 2 つの製品が同じキーを共有しないようにします。固定のソルトを使用するには 16 進文字列を、ソルトを生成するにはサイズを指定します。生成されたソルトは Salt= として表示され、検証時にも同じものを使用する必要があります。
—register <assembly>
処理の前に拡張アセンブリを読み込みます。拡張アセンブリは、--restriction 用のカスタム制限の種類、--sign 用のカスタム署名プロバイダー、代替のハードウェア識別などのサービスを提供できます。このオプションは繰り返し指定できます。
—[no]quiet (-q)
11.8 以降で使用できます。
著作権バナーとすべての対話型プロンプトを抑止するため、コマンドが入力待ちで止まることはありません。--keypwd がない場合は、パスワードを尋ねる代わりに明示的なエラーで失敗します。CI パイプラインと無人実行を想定しています。AI に適したモードを参照してください。
—[no]strict-exit
11.8 以降で使用できます。
成功時に 0、失敗時に 1 という既定の終了コードの代わりに、意味を持つ終了コードを返します。10 は無効な引数、20 は入力ファイルが見つからない、30 はライセンス処理の失敗、40 はツールのライセンスの失敗、50 はキーまたは署名の失敗です。コードは難読化ツールのものと一致します。AI に適したモードを参照してください。
ライセンス
—id [licid]
ライセンス ID を設定します。引数を指定しない場合は、新しい ID が生成されます。この ID は、複数のライセンスを含むファイル内で、--update と --verify が 1 つのライセンスを特定するために使用します。
—type <type>
ライセンスの種類を設定します。Standard、Professional、Trial などの自由なテキストで、アプリケーションはこれを読み取ってエディションを選択できます。
—sites <number>
ライセンスの対象となるサイト数(シート数)を設定します。
—issuedate [date]
発行日を設定します。引数を指定しない場合は、現在の日時が使用されます。
—expiredate <date>
有効期限を設定します。日時文字列、または今日からの日数で指定します。
lic MyApp.dll --expiredate 2027-09-01 ...
lic MyApp.dll --expiredate 365 ...—supportexpiredate <date>
製品のサポートが終了する日(保守期限)を、ライセンス自体とは独立して設定します。
—[no]assembly <file|name> (—asm, —no-asm)
別のアセンブリの ID を、ファイルまたはアセンブリ名からライセンスに追加します。このオプションは繰り返し指定でき、ワイルドカードも使用できます。--noassembly はアセンブリ情報をすべて取り除くため、特定のアセンブリに紐付かないライセンスが生成されます。
lic MyApp.dll --assembly "MyApp.Core, Version=2.1.0.0" ...
lic MyApp.dll --assembly "*, Version=" ...
lic MyApp.dll --noassembly ...—licensee <key=value>
ライセンシーの情報を、オプションごとに 1 ペアずつ設定します。指定できるキーは id、name、company、email です。
lic MyApp.dll --licensee id=C-1001 --licensee name="Contoso" --licensee company="Contoso Ltd" --licensee email=info@contoso.com ...—product <key=value>
製品の情報を、オプションごとに 1 ペアずつ設定します。指定できるキーは id、name、version、copy(著作権表示)、descr(説明)、url です。
lic MyApp.dll --product id=MYAPP --product name="MyApp" --product version=2.1 --product url=https://contoso.example ...—component <name>
ライセンス対象のコンポーネントを追加します。アセンブリ内の個々のコンポーネントやモジュールにライセンスを付与する製品で使用します。このオプションは繰り返し指定できます。
—feature <file|key=value>
ライセンスの機能を追加または更新します。機能とは、アプリケーションが製品の一部を有効にするために確認するスイッチです。key=value を指定すると、キーが機能の名前に、値が機能のデータになります。ファイルパスまたはワイルドカードを指定すると、各ファイルが、ファイル名を名前とし、ファイルの内容をデータとする機能になります。def=file を指定すると、有効期限や説明を含む完全な機能定義を、外部の XML ファイルから読み込みます。
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>
ライセンスのフィールドを追加または更新します。フィールドとは、アプリケーションが読み取る名前付きの値で、シート数、構成、コード暗号化のパスワードなどに使用します。--feature と同じ 3 つの形式を使用できます。key=value、名前と内容がフィールドになるファイル、XML 定義を指定する def=file です。
lic MyApp.dll --field Seats=25 --field Region=EU ...—sign [type]
--keyfile または --keyname で指定したキーペアでライセンスに署名します。省略可能な種類でアルゴリズムを選択します。rsa(RSA キーでの既定)、ecdsa(ECDSA キーを使用)、dsig(XML デジタル署名標準、RSA キーを使用)のいずれかです。アルゴリズムはキーと一致している必要があります。RSA キーで ECDSA 署名を生成することはできず、その逆もできません。
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 ...--sign を指定しないと、ライセンスは署名なしで書き出され、クライアントライブラリはそれを拒否します。--keyfile だけでは、キーが使用できるようになるだけで、署名はされません。
—[no]verify (—validate)
入力のライセンスファイルの署名を、--keyfile または --keyname で指定したキーで検証します。必要なのは公開キーだけです。ツールは verified successfully または is not valid を報告し、--strict-exit を指定している場合、検証に失敗するとコード 30 で終了します。
lic MyApp.licenses --verify --keyfile keys.pem—update [licid|all]
新しいライセンスを作成する代わりに、入力のライセンスファイル内のライセンスを更新します。コマンドラインで指定したライセンスの各スイッチが対応する値を置き換え、ファイルが書き戻されます。引数を指定しない場合は、ファイル内の最初のライセンスが更新されます。1 つのライセンスを特定するにはライセンス ID を、ファイル内のすべてのライセンスを更新するには all を指定します。変更したライセンスに再署名するには、もう一度 --sign を指定します。
lic MyApp.licenses --update --keyfile keys.pem --sign --licensee company="Contoso Ltd" --field Seats=50ライセンスの制限
制限の各オプションは、オプションごとに 1 つの key=value のペアを受け取り、繰り返し指定できます。どの制限も、ID を設定する id=<id> と、その制限に固有の有効期限を設定する expire=<date> を受け付けます。クライアントライブラリが各制限をどのように評価するかについては、ライセンスの制限を参照してください。
—trial <key=value>
トライアル制限を追加または更新します。
| キー | 意味 |
|---|---|
days=<n> | 初回の実行後にソフトウェアを使用できる日数。 |
time=<timespan> | 許可される合計使用時間。 |
instances=<n> | 同時に実行できるインスタンスの数。 |
terms=<text> | トライアルで表示される利用条件のテキスト。 |
lic MyApp.dll --trial days=30 --trial instances=2 ...—hardware <key=value>
ハードウェア制限を追加または更新し、ライセンスをコンピューターに紐付けます。key=<key> は、対象のコンピューターで --hardwareid を使って計算したハードウェアキーで、data=<data> は追加のハードウェアデータを埋め込みます。
lic MyApp.dll --hardware key=GPHI6-128DI-6196C-KN5LV-BCDRE ...—domain <key=value>
ドメイン制限を追加または更新します。name=<name> はコンピューターが所属している必要があるネットワークドメインで、role=<role> はネットワーク上のロールです。
—usage <key=value>
使用状況制限を追加または更新します。type=<context> はライセンスを Runtime または Designtime のコンテキストに限定し、vm=<true|false> は仮想マシンでの実行を許可または禁止し、processlist=<list> はライセンスの使用を許可するプロセスを指定します。
lic MyApp.dll --usage processlist=proc1,proc2,proc3 --usage vm=false ...—beta <key=value>
プレリリースビルド用のベータ制限を追加または更新します。build=<text> はベータビルドの種類を設定し、changes=<text> は最近の変更内容を記述します。
—restriction <name:key=value>
名前で識別されるカスタム制限を、指定したキーと値のペアで追加または更新します。制限の種類は、--register で登録した拡張アセンブリが提供する必要があります。拡張アセンブリがない場合、ツールはライセンスファクトリが設定されていないことを報告します。
lic MyApp.dll --register Contoso.Licensing.dll --restriction "Region:name=EU" ...出力ファイル
—output <file> (—out)
出力ファイルを設定します。既定では、ライセンスは入力ファイルと同じ場所に <assembly file>.licenses として保存されます。
—logfile [file] (—log)
コンソール出力をログファイルにリダイレクトします。引数を指定しない場合、ログの名前は、出力ファイルの名前に .log 拡張子を付けたものになります。
—makeproject [file] (—mp)
コマンドライン全体を、同じ設定で Lic タスクを実行する MSBuild プロジェクトファイルとして保存します。引数を指定しない場合、プロジェクトの名前は、出力ファイルの名前に .lcproj 拡張子を付けたものになります。ライセンスも生成されます。MSBuild タスクを参照してください。
入力ファイル
—keyfile <file> (—kf)
ライセンスの署名または検証に使用するキーファイルです。サポートされる形式は、PEM(--keygen が書き出す形式)、SNK 厳密名キーファイル、PFX 証明書です。PFX ファイルでは通常 --keypwd が必要です。
—keyname <container> (—kn)
ファイルの代わりに、オペレーティングシステムのキーコンテナーに保存されているキーペアを、コンテナー名で指定して署名または検証します。
—keypwd <password> (—kp)
PFX キーファイルのパスワードです。指定しない場合、ツールはパスワードの入力を求めます。--quiet を指定している場合は、入力を求める代わりに失敗します。ビルドサーバーでは、パスワードを環境変数に保存し、コマンドラインで展開してください。
—project <file> (—prj)
--makeproject で生成した、または手作業で書いた .lcproj プロジェクトファイルに保存されている設定で lic を実行します。コマンドラインのスイッチは、プロジェクトの設定の上に適用されます。
長いオプションと短いオプション
長いオプションは 2 つのハイフンで、短いオプションと 1 文字のエイリアスは 1 つのハイフンで始めます。--verbose 2 と -v 2 は同等で、--keyfile と --kf も同等です。長いオプションは、あいまいにならない任意のプレフィックスまで省略できます。--[no] と記されたスイッチは、no または no- プレフィックスでオフにします。そのため、--nologo、--no-logo、--noassembly はいずれも有効です。
終了コード
既定では、プロセスは成功時に 0、失敗時に 1 を返します。--strict-exit を指定すると、代わりに失敗の分類が返されます。同じ分類は、--strict-exit の有無にかかわらず、JSON 出力に exitReason として常に報告されます。
| 終了コード | exitReason | 意味 |
|---|---|---|
0 | success | コマンドはエラーなしで完了しました。 |
10 | invalidArguments | コマンドラインを解析できなかったか、無効な値が含まれていました。 |
20 | inputNotFound | アセンブリ、ライセンスファイル、またはその他の必要な入力が見つかりませんでした。 |
30 | processingFailure | ライセンスの処理に失敗しました。署名の検証の失敗も含まれます。 |
40 | licensingFailure | ツール自体のライセンスが見つからないか、無効か、期限切れです。 |
50 | keyOrSigningFailure | キーを読み込めなかったか、暗号処理に失敗しました。 |