윈도우 제품키 인증 키(Product Key) 확인하는 5가지 방법

By: master

Windows를 재설치하거나 새로 설치할 때 꼭 필요한 것이 정품 인증 키(Product Key)입니다.
하지만 대부분은 처음 구매하거나 설치할 때 입력한 후 잊어버리는 경우가 많습니다. 어디 적어뒀다고 해도 찾기도 힘들구요.

다행인 점은 Windows 내부에 확인 가능한 곳에 key를 기록해 둔 곳이 있어서 몇 가지 방법을 통해 윈도우 인증키를 확인할 수 있습니다.
그런데 확인 방법에 따라 키가 서로 다르게 나오는 경우가 있습니다. 왜 그럴까요?

이 글에서는 Windows 정품 인증 키를 확인할 수 있는 4가지 대표적인 방법과,
왜 키가 다르게 보이는지 그 이유까지 알기 쉽게 설명해드리겠습니다.


1. reg query 명령어로 확인 – 설치 당시 입력된 키 (Backup Key)

가장 간단한 방법 중 하나는 명령 프롬프트에서 다음 명령어를 입력하는 것입니다:

cmd 관리자권한으로 실행시키기

cmd를 입력하고 관리자 권한으로 실행합니다.

reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" /v BackupProductKeyDefault

이 명령어는 Windows가 설치될 때 사용된 제품 키의 백업 값을 보여줍니다.

2. 레지스트리 편집기 에서 확인 – 설치 당시 입력된 키 (Backup Key)

regedit을 입력 후 레지스트리 편집기를 실행시킵니다.

1번에서 사용했던 경로를 따라가 봅니다. HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform를 따라 갑니다.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform 이렇게 따라 들어가면 BackupProductKeyDefault 이름의 항목이 있고 그 안에 데이터가 들어있습니다.

레지스트리 편집기로 윈도우 인증키 확인

25자리 인증키 확인이 가능합니다.

그런데 이 키는 정확한 키일까요?

  • 이 값은 초기 설치 시 사용된 키이거나, BIOS에 저장된 OEM 키일 수 있습니다.
  • 하지만 이후에 제품 키를 변경했거나, Microsoft 계정을 통한 디지털 라이선스 인증으로 바뀐 경우라면,
    이 키는 현재 실제 사용 중인 키와 다를 수 있습니다.
  • 볼륨 라이선스(KMS 인증)인 경우, 공용 키(GVLK)가 저장됩니다.

정리하면, 이 키는 “현재 인증에 쓰이는 키”가 아닌 “과거 입력되었거나 내장된 키“입니다.


3. VBScript로 설치된 제품 키 확인 – DigitalProductId 디코딩 ★

컴퓨터\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion

Windows는 레지스트리에 제품 키를 암호화된 형태(DigitalProductId)로 저장합니다.
VBScript를 이용하면 이 값을 복호화해 사람이 읽을 수 있는 25자리 키로 변환할 수 있습니다.

사용 방법

  1. 아래 코드를 메모장에 붙여넣고
  2. ProductKey.vbs로 저장한 후 실행하세요(인코딩은 ANSI로 해주세요):
Option Explicit

Dim shell, regKey, digitalId, finalMessage
Set shell = CreateObject("WScript.Shell")

' 레지스트리 경로 설정 거의 완벽
regKey = "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\"

' 레지스트리 정보 수집
Dim osName, osID
osName = shell.RegRead(regKey & "ProductName")
osID = shell.RegRead(regKey & "ProductID")
digitalId = shell.RegRead(regKey & "DigitalProductId")

' 제품 키 디코딩
Dim productKey
productKey = DecodeKey(digitalId)

' 보기 좋게 정리된 출력 메시지
finalMessage = "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" & vbCrLf
finalMessage = finalMessage & "Windows 정품 인증 정보" & vbCrLf
finalMessage = finalMessage & "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" & vbCrLf & vbCrLf
finalMessage = finalMessage & "운영 체제:   " & osName & vbCrLf
finalMessage = finalMessage & "제품 ID:      " & osID & vbCrLf
finalMessage = finalMessage & "설치된 키:   " & productKey & vbCrLf & vbCrLf
finalMessage = finalMessage & "저장 위치: 바탕화면 - WindowsKeyInfo.txt" & vbCrLf
finalMessage = finalMessage & "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"

' 출력 및 저장 여부 확인
If MsgBox(finalMessage & vbCrLf & vbCrLf & "해당 정보를 텍스트 파일로 저장할까요?", vbYesNo + vbQuestion, "Windows Key 정보 확인") = vbYes Then
    SaveToFile finalMessage
End If

' 디코딩 함수
Function DecodeKey(keyData)
    Const offset = 52
    Dim chars, decoded, i, j, cur, last, insertChar, tempPart
    chars = "BCDFGHJKMPQRTVWXY2346789"
    decoded = ""

    Dim isWin8
    isWin8 = (keyData(66) \ 6) And 1
    keyData(66) = (keyData(66) And &HF7) Or ((isWin8 And 2) * 4)

    For i = 24 To 0 Step -1
        cur = 0
        For j = 14 To 0 Step -1
            cur = cur * 256
            cur = keyData(j + offset) + cur
            keyData(j + offset) = Int(cur / 24)
            cur = cur Mod 24
        Next
        decoded = Mid(chars, cur + 1, 1) & decoded
        last = cur
    Next

    If isWin8 = 1 Then
        insertChar = "N"
        tempPart = Mid(decoded, 2, last)
        decoded = Replace(decoded, tempPart, tempPart & insertChar, 2, 1, 0)
        If last = 0 Then decoded = insertChar & decoded
    End If

    DecodeKey = Mid(decoded, 1, 5) & "-" & Mid(decoded, 6, 5) & "-" & Mid(decoded, 11, 5) & "-" & Mid(decoded, 16, 5) & "-" & Mid(decoded, 21, 5)
End Function

' 텍스트 파일 저장 함수
Sub SaveToFile(data)
    Dim fso, txt, desktopPath
    Set fso = CreateObject("Scripting.FileSystemObject")
    desktopPath = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\WinKey.txt"
    Set txt = fso.CreateTextFile(desktopPath, True)
    txt.WriteLine data
    txt.Close
End Sub

이 방법은 언제 유용할까요?

  • 실제로 시스템에 입력된 설치 키를 알고 싶을 때
  • 리테일(Retail) 버전이나 OEM PC의 경우 정확한 키를 보여줍니다

단, 디지털 인증을 사용하는 경우 실제 쓰이지 않는 키일 수 있습니다.


4. ShowKeyPlus – 설치 키와 OEM 키를 GUI로 확인 ★★

ShowKeyPlus는 초보자도 쉽게 사용할 수 있는 무료 도구입니다.

https://apps.microsoft.com/detail/9pkvzcprx9nv

설치된 키BIOS에 내장된 OEM 키를 모두 확인할 수 있습니다.

ShowKeyPlus에서 볼 수 있는 정보

  • 현재 설치된 키
  • BIOS에 저장된 OEM 키
  • 운영체제 버전 및 에디션
  • 제품 키 유형 (Retail / OEM / Volume)

노트북이나 브랜드 PC 사용자에게 매우 유용한 툴입니다.


5. PowerShell로 BIOS OEM 키 확인

powershell을 관리자 권한으로 실행합니다. 아래의 명령어를 입력합니다.

(Get-WmiObject -query 'select * from SoftwareLicensingService').OA3xOriginalProductKey

이 명령어는 BIOS/UEFI에 내장된 OEM 정품 키를 추출합니다.

대부분의 노트북, 브랜드 데스크탑에 적용 가능
조립 PC나 디지털 인증 기반의 경우 아무 값도 안 나올 수 있음


왜 확인한 키가 서로 다른가요?

이해를 돕기 위해 다음과 같이 정리해보겠습니다.

방법키 출처특징현재 인증된 키인가요?
reg query설치 초기에 사용된 키 또는 OEM 키백업 키❌ 아닐 수 있음
VBScript현재 설치된 키 (디코딩)암호화된 값 추출✅/❌ 경우에 따라 다름
ShowKeyPlus설치 키 + BIOS 키 모두GUI 제공✅ 일부
PowerShellBIOS/UEFI 내장 키하드웨어 OEM 키✅ (일부 노트북만 해당)

결론

Windows에서 제품 키를 확인하는 방법은 다양하지만, 모든 방법이 현재 사용 중인 실제 인증 키를 정확히 알려주는 것은 아닙니다.

따라서 한 가지 방법만 믿지 말고, 여러 방법을 비교하여 확인하는 것이 중요합니다.

디지털 인증이 아닌경우 ShowKeyPlus와 VBScript 가 가장 정확한 현재 인증된 제품키
BIOS에 내장한 경우에는 POWERSHELL이 정확하다고 볼 수 있습니다.
설치된 키와 OEM 키가 다를 수 있으므로, 포맷이나 재설치 전에는 여러 방법으로 키를 추출해 정확한 값을 확인하고 안전한 곳에 백업해두는 것을 권장합니다.

  • 노트북/브랜드 PC 사용자: ShowKeyPlus + PowerShell 조합 추천
  • 조립 PC 사용자: VBScript + reg query 확인
  • 디지털 인증 사용자: 대부분 정확한 키를 추출하기 어려움 (계정 인증 기반)

컴퓨터 포맷 후 윈도우 설치하는 방법

1 thought on “윈도우 제품키 인증 키(Product Key) 확인하는 5가지 방법”

Leave a Comment