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ブリッジでは合成値または空欄になり得る |
| MachineGuid | Windowsインストール | 再インストールやイメージ複製で変更・重複し得る |
/etc/machine-id | Linuxインストール/ホスト環境 | 生の値は機密で、物理シリアルではない |
| MACアドレス | 現在提示されているネットワークIF | プライバシー設定、仮想化、交換で変化し得る |
| PnPハードウェアID | ドライバー照合用のデバイス群 | 同一モデル間で共有されることが多い |
| ベンダーHWID | 製品が定義したフィンガープリント | 入力値と変更規則を知るのはそのベンダーだけ |
HWIDを求められたら、形式の例か、その製品の公式コマンドを確認してください。別の値が一意に見えても互換性があるとは限りません。
開発者向けの設計指針
本番のライセンスシステムで、いくつかのシリアル番号を連結しただけの値を永続的なIDとみなすべきではありません。決定的な並べ替えと正規化、既知のプレースホルダー除外、欠損値の明示的処理、正当なハードウェア変更、複製イメージ、プライバシー機能、VMへの対応が必要です。
SHA-256は通常の出力から元の文字列を隠しますが、不安定または重複した入力を安定・一意にするものではありません。アプリ固有の登録IDとサーバー側のアカウント状態を中心にし、ハードウェア情報はリスクシグナルの一つとして扱ってください。詳しくはソフトウェアライセンスでのHWIDの使われ方を参照してください。
結果を過大評価せずに値を確認する
オンラインHWID Checkerは一般的な形式を認識し、すべてゼロのプレースホルダーを警告し、入力したリストと照合します。処理はブラウザー内で完結し、入力データはアップロードされません。
形式チェックに通るのは、文字列の構造が妥当という意味にすぎません。実在するハードウェア由来であること、特定のPCに属すること、外部サービスに受け入れられることは証明できません。
主要な技術資料
- Microsoft: Win32_ComputerSystemProductとUUIDプロパティ
- Microsoft: Device identification strings
- Apple: Macのモデル名とシリアル番号を調べる
- systemd: machine-id