私はシステム間ライセンスの商用ソフトウェアを開発しました。ライセンスの目的で、CPU 情報、ハード ディスク情報、BIOS などのさまざまなパラメータを使用しています。
問題は、これらのプロパティの変更によりライセンスが期限切れになることです。クライアントから、ライセンスが機能していないという電話が何度もかかってきます。
ライセンスを次のように変更しました:
- プロセッサID
- CPU名
- CPU コア数
- CPU 論理プロセッサ数
- 建築
新しい Windows をインストールした後、これらのプロパティのいずれかが変更されますか?
これらのシステムのほとんどはインターネットに接続していないため、サーバー側のシリアルキー検証は不要です。
答え1
リストされている項目はどれも実際には固有のデータではありません。したがって、Windows の新規インストール後にそれらが変更されるかどうかは、実際のニーズにとってはほとんど意味がありません。
最も一意である可能性が高いのは ProcessorID ですが、それでも一意であるという保証はありません。https://stackoverflow.com/questions/1101772/win32-processoris-processorid-unique-for-all-computers
この情報は一意ではないため、ライセンスの検証に使用することは適切ではありません。
その他の値は一貫しているか、またはドライバーによって提供される情報 (CPUName など) に依存する場合があります。
根本的な問題は、ライセンス システムの基盤となる適切なものを選択できなかったことです。
答え2
商用ライセンスを適切に取得したい場合、これらはいずれも有効ではないと思います。
- プロセッサID
- CPU名
- CPU コア数
- CPU 論理プロセッサ数
- 建築
どれもユニークではありませんが、すべてが変化する可能性もあります。
あらゆる種類の VM を許可していますか? その場合、突然マシンに物理または論理の 2 つのプロセッサが必要になった場合はどうなりますか?
ESXi / VmWare / VB が誤ってプロセッサ名を変更したり、WMI が壊れたり、不具合が生じたりしたらどうなるでしょうか。
マシンがオフラインの場合、特にサポート コールが頻繁に発生する場合は、ソフトウェアのキーを選択するでしょう。そうしないと、ライセンスを「修復」し、欠陥のあるライセンス モデルが停止していると考えていることとまったく同じことを実行する可能性があります。これは二重の打撃です。