O Win 7 armazena a chave no registro ("HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentRessVersion \ DigitalProductId"), mas é binário para que o seu 'humano' médio não interfira na busca da MS por mais dinheiro.
Você pode tirá-lo com um pequeno script VB embora.
Salve o código abaixo como, por exemplo, "getkey.vbs", execute-o (clique duas vezes) e uma pequena mensagem pop-up informa sua chave. Use CTRL + C e CTRL + V para colá-lo no bloco de notas.
Set WshShell = CreateObject("WScript.Shell")
registryLocation = '"HKLM\SOFTWARE\Microsoft\Windows NT\CurrentrentVersion\DigitalProductId"';
MsgBox ConvertHumanReadable(WshShell.RegRead(registryLocation))
Function ConvertHumanReadable(Key)
Const KeyOffset = 52
i = 28
Chars = "BCDFGHJKMPQRTVWXY2346789"
Do
Current = 0
x = 14
Do
Current = Current * 256
Current = Key(x + KeyOffset) + Current
Key(x + KeyOffset) = (Current \ 24) And 255
Current = Current Mod 24
x = x -1
Loop While x >= 0
i = i -1
KeyOutput = Mid(Chars, Current + 1, 1) & KeyOutput
If (((29 - i) Mod 6) = 0) And (i <> -1) Then
i = i -1
KeyOutput = "-" & KeyOutput
End If
Loop While i >= 0
ConvertToKey = KeyOutput
End Function
Eu não sei sobre win8 ou win10, mas teoricamente tudo que você precisa fazer é alterar o valor 'registryLocation' no código (se em tudo).