Windowsライセンスキーのすべての組み合わせ


97

ラップトップ用のWindows 8アップグレードを申請する必要があります。ラップトップの下側にWindows 7ライセンスキーが必要です。

Microsoftは、無限の知恵で摩耗するライセンスラベルを作成することを決定し、ライセンスキーを明確に読み取ることができないため、自動化されたプロセスを使用してラップトップをWindowsアップグレードオファーに登録できないことを意味します。

ラップトップを光に対してある角度で保持することで、コードのほとんどを確認できましたが、いくつかの文字があいまいです(ラベルに誤解しやすい文字を使用してくれたMicrosoftに再度感謝します)。

次の(難読化された)ライセンスキーがあります。

MPP6R-09RXG-2H[8B]MT-[B8]K[HN]M9-V[6G]C8R

それはどちらかであるように、角括弧内の文字は、曖昧なところ8BBまたは8HまたはN6またはG

16の組み合わせを作る。

itertoolsを使用してこのライセンスキーの可能な順列を生成することは適切ですか、それとももっと良い方法がありますか?

寄稿者のおかげで正しい鍵を手に入れました。キーが有効かどうかを確認する非常に便利な方法は、Windows 7のプロダクトキーチェッカーを使用することです。


11
手作業で16の組み合わせをリストアップできると思います。これにより、最終的には時間がかからなくなる可能性があります。
Waleed Khan

17
そのようなクールな質問。+1
フラビウス2013年

12
認識された文字の一部を変更し、実際のWindowsキーをインターネットに投稿していないことを本当に期待しています...
rodrigo

1
へぇ、に投稿することは非常に興味深い質問してきたでしょうcodegolf.stackexchange.com
Earlz

4
@rodrigoはい私はコードを難読化しました:)
Kerridge0

回答:


165

免責事項:はい、これはPythonコードではないことを知っています。それはちょうど私の心の中にポップされ、私は単に持っていたことを書き留めて。

最も簡単な方法は、シェル展開を使用することです。

$ echo MPP6R-09RXG-2H{8,B}MT-{B,8}K{H,N}M9-V{6,G}C8R
MPP6R-09RXG-2H8MT-BKHM9-V6C8R
MPP6R-09RXG-2H8MT-BKHM9-VGC8R
MPP6R-09RXG-2H8MT-BKNM9-V6C8R
MPP6R-09RXG-2H8MT-BKNM9-VGC8R
MPP6R-09RXG-2H8MT-8KHM9-V6C8R
MPP6R-09RXG-2H8MT-8KHM9-VGC8R
MPP6R-09RXG-2H8MT-8KNM9-V6C8R
MPP6R-09RXG-2H8MT-8KNM9-VGC8R
MPP6R-09RXG-2HBMT-BKHM9-V6C8R
MPP6R-09RXG-2HBMT-BKHM9-VGC8R
MPP6R-09RXG-2HBMT-BKNM9-V6C8R
MPP6R-09RXG-2HBMT-BKNM9-VGC8R
MPP6R-09RXG-2HBMT-8KHM9-V6C8R
MPP6R-09RXG-2HBMT-8KHM9-VGC8R
MPP6R-09RXG-2HBMT-8KNM9-V6C8R
MPP6R-09RXG-2HBMT-8KNM9-VGC8R

8
これはpythonコードではないことを知っています。それはちょうど私の心に浮かんできました、そして私はそれの考えが好きでした。この回答に反対票を投じる必要はありません。:-(
バイクシェダー2013年

Pythonではなく、それでも美しいソリューションです。
ユヴァルアダム2013

2
+1 ...そしてWindows(私の知る限り)にはこの「拡張」機能はありません...しかし、常にCygwinを使用できます
Barranka

55
Windowsにはないかもしれませんが、Linuxライセンスキーを反復処理する必要がある場合は、まあ、それが私がLinuxを愛するもう1つの理由です
Drake Clarris

1
それは短くて甘いだけでなく、コピーと貼り付けのための非常にクリーンな方法で答えを与えました。実際には5番目の変数があり、キーを取得しました!! 私は実際に「書き留める」タスクを同僚に与えました、そして彼はあきらめました!どうもありがとう。
Kerridge0 2013年

59
from itertools import product
for perm in product('8B', 'B8', 'HN', '6G'):
    print 'MPP6R-09RXG-2H%sMT-%sK%sM9-V%sC8R' % perm

17

組み合わせを生成する別の方法

>>> ['MPP6R-09RXG-2H%sMT-%sK%sM9-V%sC8R' % (a, b, c, d)
...  for a in '8B' for b in 'B8' for c in 'HN' for d in '6G']
['MPP6R-09RXG-2H8MT-BKHM9-V6C8R',
 'MPP6R-09RXG-2H8MT-BKHM9-VGC8R',
 'MPP6R-09RXG-2H8MT-BKNM9-V6C8R',
 'MPP6R-09RXG-2H8MT-BKNM9-VGC8R',
 'MPP6R-09RXG-2H8MT-8KHM9-V6C8R',
 'MPP6R-09RXG-2H8MT-8KHM9-VGC8R',
 'MPP6R-09RXG-2H8MT-8KNM9-V6C8R',
 'MPP6R-09RXG-2H8MT-8KNM9-VGC8R',
 'MPP6R-09RXG-2HBMT-BKHM9-V6C8R',
 'MPP6R-09RXG-2HBMT-BKHM9-VGC8R',
 'MPP6R-09RXG-2HBMT-BKNM9-V6C8R',
 'MPP6R-09RXG-2HBMT-BKNM9-VGC8R',
 'MPP6R-09RXG-2HBMT-8KHM9-V6C8R',
 'MPP6R-09RXG-2HBMT-8KHM9-VGC8R',
 'MPP6R-09RXG-2HBMT-8KNM9-V6C8R',
 'MPP6R-09RXG-2HBMT-8KNM9-VGC8R']
>>> 

9

itertoolsとfunctoolsを同時に使用するのはどうですか?

>>> from operator import mod
>>> from functools import partial
>>> from itertools import product
>>> map(partial(mod, 'MPP6R-09RXG-2H%sMT-%sK%sM9-V%sC8R'), product('8B', 'B8', 'HN', '6G'))
['MPP6R-09RXG-2H8MT-BKHM9-V6C8R', 'MPP6R-09RXG-2H8MT-BKHM9-VGC8R', 'MPP6R-09RXG-2H8MT-BKNM9-V6C8R', 'MPP6R-09RXG-2H8MT-BKNM9-VGC8R', 'MPP6R-09RXG-2H8MT-8KHM9-V6C8R', 'MPP6R-09RXG-2H8MT-8KHM9-VGC8R', 'MPP6R-09RXG-2H8MT-8KNM9-V6C8R', 'MPP6R-09RXG-2H8MT-8KNM9-VGC8R', 'MPP6R-09RXG-2HBMT-BKHM9-V6C8R', 'MPP6R-09RXG-2HBMT-BKHM9-VGC8R', 'MPP6R-09RXG-2HBMT-BKNM9-V6C8R', 'MPP6R-09RXG-2HBMT-BKNM9-VGC8R', 'MPP6R-09RXG-2HBMT-8KHM9-V6C8R', 'MPP6R-09RXG-2HBMT-8KHM9-VGC8R', 'MPP6R-09RXG-2HBMT-8KNM9-V6C8R', 'MPP6R-09RXG-2HBMT-8KNM9-VGC8R']

1
いいね!operator.modを使用して文字列のフォーマットを行うこともできるとは思いもしませんでした。
トム

@MartijnPietersをpartial使用する際に必要とされていませんformatなしで呼び出されたときに、それは何も変化しないよう*args**kwargs。使用formatする場合、タプルを直接渡すことはできませんが、最初にタプルを引数に変換する必要がありますmap(lambda args: 'MPP6R-09RXG-2H{}MT-{}K{}M9-V{}C8R'.format(*args), product('8B', 'B8', 'HN', '6G'))%感傷的な理由から、私はまだ古い文字列フォーマットを多く使用しています。このformat関数をもっと頻繁に使用することを検討する必要があります。
バイクシェダー2014

ええ、どういうわけか私は適用される議論がとして描かれました*args。私の間違い。
Martijn Pieters

3

http://www.magicaljellybean.com/keyfinder/

Magical Jelly Bean Keyfinderは、レジストリからウィンドウをインストールするために使用されるプロダクトキー(CDキー)を取得するフリーウェアユーティリティです。また、他の多くのアプリケーションのプロダクトキーを取得する、コミュニティで更新された構成ファイルもあります。

キーを必要とするインストールで実行するだけです。


2
残念ながら、ラップトップにインストールされているWindowsは、ラップトップの下側にあるライセンスキーを使用していませんが、ある種の企業ボリュームキーを使用してインストールされています。マイクロソフトでは、これらのコードを使用してWindowsのアップグレードを検証することを許可していません。
Kerridge0 2013年

1

Windows Anytime UpgradeオプションをWindows 7内から直接使用する場合、ライセンスキーが何であるかを知る必要はありません。

オペレーティングシステムがアクティブ化されている限り、Windows 8は既存のオペレーティングシステムを上書きし、Windows 7のすべてを「Windowsの古い」フォルダーに配置します。このフォルダーは、ファイルなどが必要でない限り削除できます。

Windowsアップグレードプロセスは、アクティブ化されたWindowsオペレーティングシステムを探します。アップグレードをインストールする前にアクティブ化されていれば、Windows XPでも実行できます。

Anytime Upgrade経由で購入すると、Windows 8ライセンスキーがメールで送信されます。ストアからアップグレードを購入する場合は、ライセンスキーとダウンロードURLを取得するか、Windows Anytime Upgradeにキーを接続するだけで、ダウンロードしてインストールされます。


正解ですが、「Windowsアップグレードオファー」にはこのコードが必要でした。このプロセスは、COAのコードを使用してウィンドウを再インストールし、製造元の復元パーティションがない場合にも役立ちます。
Kerridge0 2013
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.