本文へスキップ
HWID Checker

Windows・macOS・LinuxでHWIDを確認する方法

SMBIOS UUID、MachineGuid、ハードウェアのシリアル番号などを現在のWindows・macOS・Linuxコマンドで確認し、各値が何を識別するのかを正しく理解します。

HWID Checker · 2026年8月10日 · 1 分で読めます

ゲーム、ソフトウェアベンダー、IT管理者から HWID(ハードウェアID)の提出を求められたら、まず必要な項目と形式を確認してください。すべてのコンピューターに共通する単一のHWIDは存在しません。SMBIOS UUID、物理ディスクのシリアル番号、Windowsのインストール識別子、複数の値から製品独自に作られたフィンガープリントなどを指す場合があります。

そのため、コマンドが実在する値を返しても、相手が必要とする識別子とは限りません。ファームウェアや仮想化基盤が有効な値を提供していなければ、空欄、すべてゼロ、あるいは汎用的な値が表示されることもあります。

プライバシー上の注意: UUID、シリアル番号、インストールIDは機微情報になり得ます。相手が1項目しか必要としていないのに、レポート全体を公開しないでください。

Windows:まずPowerShell CIMを使う

サポート対象のWindows 10/11では、ファームウェアやデバイス情報を公開するWMIクラスの照会にPowerShellのCIMコマンドレットを使います。以下は読み取り専用で、通常は管理者権限も不要です。

# SMBIOSシステムUUID
Get-CimInstance Win32_ComputerSystemProduct | Select-Object -ExpandProperty UUID

# BIOSシリアル番号
Get-CimInstance Win32_BIOS | Select-Object -ExpandProperty SerialNumber

# マザーボードのシリアル番号
Get-CimInstance Win32_BaseBoard | Select-Object -ExpandProperty SerialNumber

# 物理ディスクのモデルとシリアル番号
Get-CimInstance Win32_DiskDrive | Select-Object Model, SerialNumber

Win32_ComputerSystemProductのUUIDはSMBIOSのSystem Information構造から取得されます。マシンを識別するための値ですが、品質はメーカーや仮想化基盤に依存します。すべてゼロのUUID、繰り返し使われる参照値、Default string、To Be Filled By O.E.M.などはプレースホルダーであり、信頼できる一意IDではありません。

WMICはどうなったのか

古い解説では次のコマンドがよく使われます。

wmic csproduct get uuid

Microsoftはwmic.exeを非推奨としており、現在のWindows 11環境には存在しない場合があります。WMI自体が廃止されたわけではありません。Get-CimInstanceは、サポートされているPowerShellインターフェースから同じ管理基盤を照会します。WMICは、すでに導入済みの旧環境を保守するときだけ使用してください。

MachineGuidはハードウェアではなくインストールを識別する

WindowsはMachineGuidを次の場所に保存します。

reg query "HKLM\SOFTWARE\Microsoft\Cryptography" /v MachineGuid

PowerShellでも同じ値を取得できます。

Get-ItemPropertyValue "HKLM:\SOFTWARE\Microsoft\Cryptography" -Name MachineGuid

MachineGuidが識別するのはWindowsのインストールです。ライセンスや端末認識の材料にするアプリもあれば、まったく使わないアプリもあります。マザーボードのシリアル番号ではなく、特定の物理PCを証明する値でもありません。再インストール、イメージ展開、クローン、一部の回復処理によって変更または複製されることがあります。

デバイスマネージャーに表示されるのはPnPハードウェアID

デバイスマネージャーでデバイスのプロパティを開き、詳細からハードウェアIDを選ぶと、PCI\VEN_8086&DEV_...のような値が表示されます。これは主にデバイスとドライバーパッケージを対応付けるPlug and Play識別文字列です。

通常はモデル、ベンダー、サブシステム、リビジョンを表し、同一モデルのデバイス同士で共有されます。PnPハードウェアIDを、シリアル番号、デバイスインスタンスID、マシン全体のHWIDと混同しないでください。

macOSの識別子

まずハードウェア情報全体を確認するのが確実です。

system_profiler SPHardwareDataType

system_profilerの表示言語に依存せず、プラットフォームUUIDとMacのシリアル番号を取得するには次を使います。

ioreg -rd1 -c IOPlatformExpertDevice | awk -F'= ' '/IOPlatformUUID/{gsub(/"/,"",$2); print $2}'
ioreg -rd1 -c IOPlatformExpertDevice | awk -F'= ' '/IOPlatformSerialNumber/{gsub(/"/,"",$2); print $2}'

MACアドレスを確認する前に、ハードウェアポートとインターフェース名を対応付けます。

networksetup -listallhardwareports
ifconfig en0 | awk '/ether/{print $2}'

en0は必要なインターフェース名に置き換えてください。表示されるアドレスが工場出荷時のMACとは限りません。Wi-Fiのプライバシー機能、仮想アダプター、機器交換によって変わることがあります。

Linuxの識別子

Linuxではインストール単位の値とファームウェア由来の値を取得できます。

# OSインストール/ホスト環境のID。ハードウェアのシリアル番号ではない
cat /etc/machine-id

# SMBIOSシステムUUID。通常はroot権限が必要
sudo dmidecode -s system-uuid

# 物理ブロックデバイスと公開されているシリアル番号
lsblk --nodeps -o NAME,MODEL,SERIAL

# ネットワークインターフェースと現在のリンク層アドレス
ip link show

/etc/machine-idは通常、インストール時または初回起動時に作成されます。ハードウェア交換で必ず変わるわけではなく、不適切に複製されたイメージでは重複します。systemdの文書は生の値を機密情報として扱っています。アプリは信頼できないサービスへ直接送らず、アプリ固有のIDを派生させるべきです。

dmidecodeはファームウェアテーブルを読みます。コンテナでは利用できない場合があり、仮想マシン内では通常、物理ホストではなくVMのUUIDが返ります。

仮想マシン、クラウドデスクトップ、シンクライアント

机上に物理的なボックスがあっても、Windowsがその機器上で直接動いているとは限りません。学校やオフィスでは、別のサーバー上のVDI/クラウドデスクトップへ接続するシンクライアントやミニPCがよく使われます。

QEMU HARDDISK、Red Hat VirtIO、VMwareデバイス、Hyper-V仮想アダプターなどが見える場合、OSが認識しているのは仮想ハードウェアです。その場合は次の点に注意してください。

  • SMBIOS UUIDはハイパーバイザーが割り当てた値、テンプレートから複製された値、またはすべてゼロの場合がある
  • ディスクのシリアル番号は仮想ディスクのもので、サーバーの物理SSDのものではない
  • MACアドレスは仮想アダプターに属し、VMの再作成で変わることがある
  • マザーボード、筐体、RAMのシリアル番号が空欄または汎用値になることがある
  • レポートが示すのはゲスト環境であり、机上の端末そのものとは限らない

これは照会の失敗ではなく、OSに公開されている情報の限界です。

Windows用ポータブルレポートとプロジェクト固有のハッシュ

利用可能なWindowsの値をローカルレポートにまとめるには、Windows版HWID Checkerを利用できます。インストール不要のポータブルx64ツールで、次のオプションに対応します。

hwid-checker.exe -save
hwid-checker.exe -json
hwid-checker.exe -no-hash

ローカルに公開された値だけを読み、-saveを指定した場合だけファイルを書き込みます。空の結果は省かれますが、現行版では汎用プレースホルダーやすべてゼロのUUIDが表示される場合があります。hashed hwid sha256は、収集した空でないフィールドから本プロジェクトが生成するダイジェストです。EXEファイルのSHA-256、普遍的なHWID、ゲームやアンチチート、ライセンスベンダーが使うIDではありません。

変化を調べるときは最終ハッシュだけでなく、生のフィールドを比較してください。インストールID、ネットワークアダプター、仮想デバイス、取得結果の順序は変化する可能性があります。

実際に必要なのはどの値か

要求された値識別対象主な制約
SMBIOS UUIDファームウェアまたはVMのシステム情報空欄、汎用値、重複、ハイパーバイザー割り当ての場合がある
BIOS/マザーボードシリアルOEMファームウェア情報市販マザーボードやVMではプレースホルダーが多い
物理ディスクシリアルOSから見えるストレージ仮想ディスクやUSBブリッジでは合成値または空欄になり得る
MachineGuidWindowsインストール再インストールやイメージ複製で変更・重複し得る
/etc/machine-idLinuxインストール/ホスト環境生の値は機密で、物理シリアルではない
MACアドレス現在提示されているネットワークIFプライバシー設定、仮想化、交換で変化し得る
PnPハードウェアIDドライバー照合用のデバイス群同一モデル間で共有されることが多い
ベンダーHWID製品が定義したフィンガープリント入力値と変更規則を知るのはそのベンダーだけ

HWIDを求められたら、形式の例か、その製品の公式コマンドを確認してください。別の値が一意に見えても互換性があるとは限りません。

開発者向けの設計指針

本番のライセンスシステムで、いくつかのシリアル番号を連結しただけの値を永続的なIDとみなすべきではありません。決定的な並べ替えと正規化、既知のプレースホルダー除外、欠損値の明示的処理、正当なハードウェア変更、複製イメージ、プライバシー機能、VMへの対応が必要です。

SHA-256は通常の出力から元の文字列を隠しますが、不安定または重複した入力を安定・一意にするものではありません。アプリ固有の登録IDとサーバー側のアカウント状態を中心にし、ハードウェア情報はリスクシグナルの一つとして扱ってください。詳しくはソフトウェアライセンスでのHWIDの使われ方を参照してください。

結果を過大評価せずに値を確認する

オンラインHWID Checkerは一般的な形式を認識し、すべてゼロのプレースホルダーを警告し、入力したリストと照合します。処理はブラウザー内で完結し、入力データはアップロードされません。

形式チェックに通るのは、文字列の構造が妥当という意味にすぎません。実在するハードウェア由来であること、特定のPCに属すること、外部サービスに受け入れられることは証明できません。

主要な技術資料