Windowsでシステムごとに異なる値として、Cドライブが存在するHDDパーティションのUUIDを取得する方法です。
PowerShellで次のようにして取得します。$uuid に設定されます。
$drive = Get-WmiObject -Class Win32_Volume -Filter "DriveLetter = 'C:'"
$uuid = $drive.DeviceID -replace '\\\\\?\\Volume|[\{\}\\]'
uuidは以下のような形式です。
4c8eb488-7cbb-4c8c-acd3-83a289ad13ae
Linuxの場合は、次の記事を参照してください。
Linuxでシステム固有の値としてディスクのUUIDを暗号化キーに使う – パソコン鳥のブログ
なお、他にもシステムごとに異なる値としてネット上では以下のものが説明されていましたが、以下のような理由で使うことはできませんでした。
・BIOSのシリアルナンバー
コマンドプロンプトから wmic bios get serialnumber
で取得します。
ですが、To Be Filled By O.E.M. と出たりして取得できないPCもありました。
・WindowsOSのシリアルナンバー
次のコマンドで取得できます。
コマンドプロンプト
wmic csproduct get uuid
PowerShell
(Get-WmiObject -Class Win32_ComputerSystemProduct).UUID
実行結果が次のようになるPCがあり、XX部分がMACアドレスのようでした。
MACアドレスはネットワーク内の他PCからわかるため、システム固有の値として扱うのは避けました。
XXXXXXXX-XXXX-0000-0000-000000000000
・プロセッサーID
次のコマンドで取得できますが、同じ型番のCPUでは同じ値になり、システム固有の値ではないようでした。
wmic CPU get ProcessorId /value
コメント