web-dev-qa-db-ja.com

製品IDからのOEMプロダクトキー?

Windows 7のインストールを再インストールしましたが、プロダクトキーの入力を求められます。しかし、悲しいかな、私は、実際のプロダクトキーではなく、プロダクトIDを書き留めていました。残念ながら、キーが存在するWindowsのケースを紛失したので、プロダクトIDを使用するだけでプロダクトキーを取得する方法があるのでしょうか。

2
Bez Hermoso

プロダクトキーはレジストリに保存されており、 KeyFinder などのツールを使用してそこから取得できます。プリインストールされたシステムを購入した場合、ディストリビューターは初期セットアップにtheirプロダクトキーを使用した可能性が高いことに注意してください。これはインストールでは機能しません。メディア。

3
Ansgar Wiechers

製品IDは実際の製品キーとは完全に異なり、後者は前者から派生させることはできません。製品IDはインストール時に生成され、正確なWindowsバージョン、ライセンスの発行元のチャネル(小売、OEM、MSDNなど)、およびロケールなどの情報が含まれています。マイクロソフトからテクニカルサポートを受ける際に使用されます。Windowsライセンスの所有権を証明するものではありません。

以前のWindowsインストールをバックアップした場合は、 Magical Jelly bean Keyfinder のようなユーティリティを使用して、正しいレジストリHiveをロードし、プロダクトキーを読み取ることができるはずです。そうでない場合は、以前のライセンスの痕跡をすべて紛失または消去したため、Windowsの新しいコピーを購入するしか選択肢がありません。

2
Indrek

OEMは、必要なキーをコンピューターにCOAに添付します。他の人が指摘しているように、あなたの唯一の本当の選択は、Windows 7の新しいコピーを購入し、小売コピーのキーがOEMインストールでは機能しないため再インストールすることです。

1
Dave M

Win 7はレジストリにキーを格納しますが( "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentrentVersion\DigitalProductId")、それはバイナリであるため、平均的な「人間」がMSのより多くのお金の探求を妨げることはありません。少しVBスクリプトでもそれを取得できます。

以下のコードを「getkey.vbs」などとして保存し、実行して(ダブルクリック)、小さなポップアップメッセージでキーが表示されます。 Ctrl + CおよびCTRL + Vを使用して、メモ帳に貼り付けます。

  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

Win8やwin10については知りませんが、理論的にはコード内の 'registryLocation'の値を変更するだけです(もしあれば)。

0
Rid Iculous