Windows, macOS, Linux에서 HWID 확인 방법
PowerShell, 시스템 설정 또는 터미널 명령을 사용하여 Windows, macOS, Linux에서 MachineGuid, SMBIOS UUID, 디스크 시리얼 및 기타 하드웨어 식별자를 확인하는 방법을 알아봅니다.
HWID Checker · 2026년 8월 10일 · 4 분 분량
게임, 소프트웨어 벤더 또는 IT 관리자가 HWID(하드웨어 ID)를 요청하는 경우, 먼저 어떤 식별자를 원하는지 확인하십시오. "HWID"는 Windows MachineGuid, SMBIOS UUID, 디스크 시리얼 또는 벤더 고유 복합 해시를 의미할 수 있습니다. 아래 방법은 하나의 보편적 값이 존재하는 것처럼 가장하지 않고, 각 명령이 반환하는 값을 보여줍니다.
방법 1 — 레거시 명령 프롬프트 (구형 Windows)
구형 Windows 설치에서는 wmic로 시스템 펌웨어가 제공하는 SMBIOS UUID를 표시할 수 있습니다. 현재 Windows 11 릴리스에서는 아래의 PowerShell 방법을 먼저 사용하십시오.
Win + R을 누르고,cmd를 입력한 후 Enter를 누르십시오.- 다음 명령을 붙여넣고 Enter를 누르십시오.
wmic csproduct get uuid
3F2504E0-4F89-41D3-9A0C-0305E82C3301과 같은 형태의 줄이 보일 것입니다. 이것이 시스템의 UUID이며, 대부분의 목적에서 HWID에 해당합니다.
Windows 11 참고:
wmic는 Windows 10 21H1에서 더 이상 사용되지 않으며, 새로 설치한 Windows 11 24H2에서는 기본적으로 비활성화되어 있습니다. 명령을 사용할 수 없다면 방법 2의 PowerShell CIM 명령을 사용하십시오.
방법 2 — PowerShell CIM (현재 Windows 권장)
PowerShell의 CIM cmdlet은 wmic를 대체하며 모든 현재 Windows 버전에서 작동합니다.
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
# Windows MachineGuid (대부분의 라이선스 시스템이 "HWID"로 부르는 값)
Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Cryptography" | Select-Object -ExpandProperty MachineGuid
방법 3 — 레지스트리 MachineGuid
대부분의 Windows 라이선스 시스템이 실제로 "HWID"로 사용하는 값은 레지스트리에 저장된 MachineGuid입니다. PowerShell 없이도 읽을 수 있습니다.
Win + R을 누르고,regedit을 입력한 후 Enter를 누르십시오.HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography로 이동하십시오.MachineGuid값을 찾으십시오 —a1b2c3d4-...와 같은 UUID 형태입니다.
또는 명령줄에서:
reg query "HKLM\SOFTWARE\Microsoft\Cryptography" /v MachineGuid
방법 4 — 장치 관리자 (그래픽, 명령줄 없음)
명령줄보다 그래픽 인터페이스를 선호하는 경우:
- 시작 버튼을 우클릭하고 장치 관리자를 선택하십시오.
- 하드웨어 범주(예: 디스크 드라이브, 네트워크 어댑터)를 펼치십시오.
- 장치를 우클릭하고 속성을 선택하십시오.
- 세부 정보 탭으로 이동하십시오.
- 속성 드롭다운에서 하드웨어 ID를 선택하십시오.
표시되는 값은 Windows가 인식하는 장치의 하드웨어 식별자입니다. 이는 드라이버가 장치를 매칭하는 데 사용하는 동일한 식별자이며, 라이선스 시스템도 사용할 수 있는 식별자입니다.
방법 5 — macOS 및 Linux 명령
Mac 또는 Linux 머신에서는 명령이 다르지만 마찬가지로 간단합니다.
macOS
# 하드웨어 UUID (기본 머신 식별자)
system_profiler SPHardwareDataType | grep "Hardware UUID"
# 시리얼 번호
system_profiler SPHardwareDataType | grep "Serial Number"
# MAC 주소
ifconfig en0 | grep ether
또는 모든 하드웨어 정보를 한 번에 확인:
system_profiler SPHardwareDataType
Linux
# 머신 ID (배포판 수준 식별자)
cat /etc/machine-id
# 마더보드 UUID (root 필요)
sudo dmidecode -s system-uuid
# 디스크 시리얼 번호
lsblk --nodeps -o NAME,SERIAL
# MAC 주소
ip link show | grep ether
방법 6 — 휴대용 Windows 보고서 및 복합 해시
위 명령들은 각각 한 종류의 식별자만 반환합니다. Windows와 펌웨어에서 사용 가능한 값을 포함한 단일 보고서가 필요하다면 휴대용 Windows 유틸리티를 사용하십시오.
Windows용 HWID Checker 다운로드 — 설치 프로그램이 없는 약 2.4 MB x64 실행 파일입니다. 명령 프롬프트나 PowerShell에서 실행하여 사용 가능한 식별자와 복합 SHA-256 HWID를 출력할 수 있습니다:
hwid-checker.exe -save # 타임스탬프가 있는 .txt로 저장
hwid-checker.exe -json # 스크립트용 JSON 출력
유틸리티는 보고서를 로컬에서 처리하며, -save를 사용할 때만 파일을 작성합니다. 누락되거나 일반적이거나 권한이 제한된 펌웨어 값은 출력에서 생략될 수 있습니다.
실제로 어떤 식별자가 필요한가요?
서로 다른 시스템이 "HWID"라는 이름으로 서로 다른 값을 요구합니다:
| 필요할 가능성이 높은 값 | 출처 | 확인 방법 |
| --- | --- | --- |
| UUID | SMBIOS UUID | 방법 2의 PowerShell CIM 명령 |
| Windows MachineGuid | 레지스트리 | 위 방법 3 |
| 복합 SHA-256 HWID | 정규화된 사용 가능 식별자 세트 | 방법 6 |
| MAC 주소 | 네트워크 어댑터 | getmac 또는 Get-NetAdapter |
| 디스크 시리얼 | 물리 저장 장치 | 방법 2의 PowerShell CIM 명령 |
확실하지 않은 경우 어떤 필드와 형식이 필요한지 물어보십시오. 상대방이 하나의 값만 필요로 할 때 원시 시리얼 번호가 포함된 전체 보고서를 보내지 마십시오.
자체 코드에서 HWID 읽기
머신을 식별해야 하는 소프트웨어를 개발 중이라면, 세 가지 언어로 된 최소 예시를 참고하십시오. 각 예시는 몇 가지 하드웨어 식별자를 읽어 하나의 핑거프린트로 해시합니다.
Go
package main
import (
"crypto/sha256"
"encoding/hex"
"fmt"
"os/exec"
"strings"
)
func main() {
uuid := powershell("(Get-CimInstance Win32_ComputerSystemProduct).UUID")
board := powershell("(Get-CimInstance Win32_BaseBoard).SerialNumber")
disk := powershell("(Get-CimInstance Win32_DiskDrive | ForEach-Object { $_.SerialNumber }) -join ','")
combined := strings.Join([]string{uuid, board, disk}, "|")
hash := sha256.Sum256([]byte(combined))
fmt.Println(hex.EncodeToString(hash[:]))
}
func powershell(command string) string {
out, _ := exec.Command("powershell", "-NoProfile", "-Command", command).Output()
return strings.TrimSpace(string(out))
}
C# (.NET)
using System.Management;
using System.Security.Cryptography;
using System.Text;
string cpu = new ManagementObjectSearcher("SELECT ProcessorId FROM Win32_Processor")
.Get().Cast<ManagementObject>().First()["ProcessorId"].ToString();
string board = new ManagementObjectSearcher("SELECT SerialNumber FROM Win32_BaseBoard")
.Get().Cast<ManagementObject>().First()["SerialNumber"].ToString();
string disk = new ManagementObjectSearcher("SELECT SerialNumber FROM Win32_DiskDrive")
.Get().Cast<ManagementObject>().First()["SerialNumber"].ToString();
string combined = $"{cpu}-{board}-{disk}";
byte[] hash = SHA256.Create().ComputeHash(Encoding.UTF8.GetBytes(combined));
Console.WriteLine(Convert.ToHexString(hash));
참고:
System.Management은 .NET Core 3.1+ 및 .NET 5+에서System.ManagementNuGet 패키지가 필요합니다.
Python
import subprocess, hashlib
def powershell(command):
result = subprocess.run(
["powershell", "-NoProfile", "-Command", command],
capture_output=True, text=True, check=True
)
return result.stdout.strip()
uuid = powershell("(Get-CimInstance Win32_ComputerSystemProduct).UUID")
board = powershell("(Get-CimInstance Win32_BaseBoard).SerialNumber")
disk = powershell("(Get-CimInstance Win32_DiskDrive | % SerialNumber) -join ','")
fingerprint = hashlib.sha256(f"{uuid}|{board}|{disk}".encode()).hexdigest()
print(fingerprint)
CPU ProcessorId 참고:
wmic cpu get ProcessorId(또는 CPUID 명령)가 반환하는 값은 CPU의 제조사, 제품군, 모델 및 스테핑을 인코딩한 것이며, 칩마다 고유한 시리얼이 아닙니다. 같은 모델의 두 CPU는 동일한 ProcessorId를 반환합니다. 복합 핑거프린트의 한 컴포넌트로는 유용하지만, 단독으로 머신을 고유하게 식별하기에는 충분하지 않습니다.
프로덕션 시스템은 일반 시리얼, 권한, 가상 머신, 정규화 및 정당한 하드웨어 변경도 처리해야 합니다. Windows CLI 소스 및 빌드 지침은 프로젝트 저장소를 참조하십시오.
누군가 보낸 HWID를 확인하고 싶으신가요?
이미 HWID 문자열을 가지고 있고 어떤 형식인지, 유효한지, 목록과 대조하고 싶다면 온라인 HWID 체커에 붙여넣으십시오. 브라우저에서 완전히 실행되며 아무것도 업로드되지 않습니다.