マシン君 自分探しの旅
社内のマシンや、何らかの管理ソフトから管理対象とするマシンを、一意のそれに定められる識別子を調べていました。
マシン君「僕はxxを以って僕です!」
と言ってくれる何か
マシン名
マシン君「これが僕の名前です。これが僕です。」
否。マシン名は出生後いつも何度でも変更可能で、同一ネットワーク内で被っていても公的な問題はありません(問題はある)。
IPアドレス
マシン君「これが僕のアドレスです。住所です。僕はここにいます。」
否。アドレスは複数持つことが可能です。また、任意に変更することもできます。
分離されたネットワークなら同じアドレスが許されます。
macアドレス
NICに割り振られている一意のIDです。
具体的には以下のフォーマットで表されます。
FF:FF:FF:FF:FF:FF
表現できるバリエーションは2の46乗。70兆個以上。
これなら被ることもあるまい。
マシン君「このmacアドレスが僕です!」
だめです。使用するNICによって変わるし、レジストリエディタやデバイスマネージャーから変更することができるので。
MachineGuid
2022/06/02追記
以下のレジストリにMachineGuidが格納されています。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography
マシン君「Windowsとして振られたこの識別子が僕です」
なるほど。でも脳移植(OS再インストール)すると違うものになるしなぁ
UUID
Universally Unique UDentifier
名前からして、今回の答えのような要素です。
マシン君「マザーボードに刻まれた、この世界に一つのユニークなIDが僕である証拠です!」
具体的には以下のフォーマットで表されます。
FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF
表現できるバリエーションは2の122乗。5澗個以上(もうよくわからんな。
以下のコマンドで確認可能です。
wmic csproduct get uuid
一旦の結論
マザーボードのUUIDは変更できず被ることは確率的にないため、windows/linuxに限らず、これをそのマシンである識別子にする。で良いのではないでしょうか
考察
とはいえ。そのベンダーが提供している方法などを用いれば、UUIDを変更することはできる。
またVMやHyer-V、ESXiなどの仮想マシンでは、より簡単に変更できます。
UUIDはマザーボードを交換すると変わります。またベンダーによっては割り当てがされておらず、デフォルト値が返ってくるようです。
なんか脳移植の倫理観的な問題になってきたな。
どこまで行っても変更が可能なので、現実的な範囲で採用する識別子を決めたいですね。