Windowsでシステム固有の値としてディスクのUUIDを取得する

ALL
スポンサーリンク

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

コメント