Bir Windows lisans anahtarının tüm permütasyonları


97

Dizüstü bilgisayarım için bir Windows 8 yükseltmesine başvurmam gerekiyor, bunun için dizüstü bilgisayarın alt tarafında Windows 7 lisans anahtarına ihtiyacım var.

Microsoft sonsuz bilgeliğiyle geçerliliğini yitiren lisans etiketleri oluşturmaya karar verdiğinden ve lisans anahtarımı net bir şekilde okuyamadığım için, bu, dizüstü bilgisayarımı otomatikleştirilmiş bir işlem kullanarak Windows yükseltme teklifi için kaydedemeyeceğim anlamına geliyor.

Dizüstü bilgisayarı ışığa belirli bir açıyla tutarak kodun çoğunu doğrulayabildim, ancak harflerin birçoğu belirsiz (etiketinizde yanlış okunması kolay karakterleri kullandığı için tekrar Microsoft'a teşekkürler).

Aşağıdaki (gizlenmiş) lisans anahtarına sahibim,

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

köşeli parantez içindeki karakterler belirsizdir, bu nedenle ya 8veya B, Bveya 8, Hveya N, 6veya G.

16 kombinasyon yapmak.

Bu lisans anahtarının olası permütasyonlarını itertools kullanarak oluşturmak uygun mu yoksa daha iyi bir yol var mı?

Katkıda bulunanlar sayesinde doğru anahtarı aldım. Anahtarın geçerli olup olmadığını kontrol etmenin çok kolay bir yolu, Windows 7 ürün anahtarı denetleyicisini kullanmaktır .


11
Sanırım on altı kombinasyonu elle listeleyebilirsiniz, bu sonunda daha az zaman alabilir.
Waleed Khan

17
Ne kadar güzel bir soru. +1
Flavius

12
Tanınan karakterlerden bazılarını değiştirdiğinizi ve gerçek Windows anahtarınızı internette yayınlamadığınızı gerçekten bekliyorum ...
rodrigo


4
@rodrigo Evet kodu gizledim :)
Kerridge0

Yanıtlar:


165

Feragatname: Evet, bunun Python kodu olmadığını biliyorum . Sadece aklıma geldi ve onu yazmak zorunda kaldım .

En basit yol, kabuk genişletmenin kullanılmasıdır:

$ 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
Bunun bir python kodu olmadığını biliyorum. Sadece aklıma geldi ve fikri hoşuma gitti. Bu yanıta olumsuz oy vermenize gerek yok. :-(
bikeshedder

Python değil, yine de güzel bir çözüm.
Yuval Adam

2
+1 ... ve Windows (bildiğim kadarıyla) bu "genişletme" ye sahip değil ... ama her zaman
Cygwin'i

55
Windows'ta olmayabilir, ancak Linux lisans anahtarınızı yinelemeniz gerekirse .. oh bekleyin, bu
linux'u sevmemin

1
Sadece kısa ve tatlı değil, aynı zamanda kopyalayıp yapıştırmak için çok temiz bir şekilde cevaplar verdi. Aslında 5. değişken vardı ve anahtarımı aldım !! Aslında bir meslektaşıma "yaz" görevini verdim ve o da vazgeçti! Çok teşekkürler.
Kerridge 0

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

17

Kombinasyonları oluşturmanın başka bir yolu

>>> ['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

Aynı anda itertools ve functools kullanmaya ne dersiniz?

>>> 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
Güzel! Dize biçimlendirmesi yapmak için operator.mod'u kullanabileceğiniz hiç aklıma gelmedi.
Tom

@MartijnPieters partial, kullanılmadan veya formatçağrıldığında hiçbir şeyi değiştirmediği için gerekli değildir . Kullanırken doğrudan demet olamaz ama ilk argümanlar dönüştürmek gerekir: . Hala duygusal nedenlerden dolayı eski dize biçimlendirmesini çok kullanıyorum. İşlevi daha sık kullanmayı gerçekten düşünmeliyim . *args**kwargsformatmap(lambda args: 'MPP6R-09RXG-2H{}MT-{}K{}M9-V{}C8R'.format(*args), product('8B', 'B8', 'HN', '6G'))%format
bikeshedder

Evet, bir şekilde uygulanan argümanlar olarak hayal ettim *args. Benim hatam.
Martijn Pieters

3

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

Magical Jelly Bean Keyfinder, kayıt defterinizden pencereleri yüklemek için kullandığınız Ürün Anahtarınızı (cd anahtarı) alan ücretsiz bir yardımcı programdır. Ayrıca, diğer birçok uygulama için ürün anahtarlarını alan topluluk tarafından güncellenen bir yapılandırma dosyasına sahiptir.

Sadece anahtarı istediğiniz kurulumda çalıştırın.


2
Ne yazık ki, dizüstü bilgisayarda yüklü olan Windows, dizüstü bilgisayarın altında bulunan lisans anahtarını kullanmıyor, ancak bir tür kurumsal ses anahtarı kullanılarak yükleniyor. Microsoft, bu kodların Windows yükseltmesini doğrulamak için kullanılmasına izin vermez.
Kerridge 0

1

Eğer kullanırsanız Windows Yükseltme Windows 7 içinde doğrudan seçeneği, o zaman lisans anahtarı ne olduğunu bilmek gerek yok.

İşletim sistemi etkinleştirildiği sürece, Windows 8 sadece mevcut işletim sisteminin üzerine yazacak ve Windows 7'deki her şeyi bir dosyaya veya başka bir şeye ihtiyacınız olmadığı sürece silebileceğiniz "Windows-eski" bir klasöre yerleştirecektir.

Windows yükseltme işlemi, etkinleştirilmiş bir Windows işletim sistemi arar, Windows XP bile yükseltmeyi yüklemeden önce etkinleştirildiği sürece yapacaktır.

Anytime Upgrade ile satın alırken size Windows 8 lisans anahtarı e-postayla gönderilecektir. Bir mağazadan bir yükseltme satın alırsanız, yalnızca bir lisans anahtarı ve bir indirme URL'si alırsınız VEYA anahtarı Windows Anytime Upgrade'e takmanız yeterlidir ve yazılım kendisini indirip kuracaktır.


Doğru, ancak bu kod gönderildiği sırada "Windows Yükseltme Teklifi" için gerekliydi. Bu işlem, COA'daki kodu kullanarak pencereleri yeniden yüklemek isteyen ve artık üreticinin geri yükleme bölümüne sahip olmayanlar için de yararlı olabilir.
Kerridge0
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.