Diit.cz - Novinky a informace o hardware, software a internetu

Kterak Microsoft »aktivně« nepodporuje Windows XP x64

Na druhé úterý tohoto měsíce jsem se těšil jak na Vánoce. Zajímalo mě, jak si Microsoft ošetří nepodporu Windows XP x64 vycházející z dosud podporovaného Windows Serveru 2003 x64. Zjistil jsem, že Microsoft 64bitová XPčka nepodporuje doslova aktivně…
blog

Opáčko

Kdo jste s Windows XP x64 dělali, víte, že bezpečnostní aktualizace, které vyjdou pro Windows XP x64, jsou stejné jako záplaty pro Windows Server 2003 x64. Totéž jméno souboru, tentýž obsah, jen odkazy ke stažení se obvykle liší, ale skutečně šlo celou dobu o identické soubory (na výjimku se mi nepodařilo nikdy narazit).

Je to logické. Oba operační systémy jsou pokrevní příbuzní. Není to tak, že by Windows XP x64 byly jen přeložená klasická XPčka pro x64 platformu. Windows XP x64 (celým jménem Windows XP Professional x64 Edition) jsou klientská (nebo chcete-li workstation) varianta Windows Serveru 2003 x64 (tak jako je Windows Vista klientská varianta Windows Serveru 2008). Samozřejmě se to liší ještě nějakými těmi soubory navíc v serverových verzích, ale základ operačního systému je stejný. 32bitová edice Windows XP je verze Windows 5.1 (build 2600), zatímco Windows XP x64 (stejně jako všechny verze Windows Serveru 2003) jsou verze Windows 5.2 (build 3790). Fakticky tedy jde o novější systém. Ostatně zatímco Windows XP (32bit. edice) dostala až Service Pack 3, pro Windows XP x64 vyšel jako poslední Service Pack 2.

Ještě připomínám, aby se to nepletlo, že existoval systém Windows XP 64-bit Edition. Ten byl určen pro počítače s procesory Intel Itanium a jeho podpora skončila už dávno, krátce poté, co se přestaly prodávat pracovní stanice s procesory Intel Itanium. Vyšly dokonce dvě verze tohoto systému: Windows XP 64-Bit Edition for Itanium systems, Version 2002, která byla postavená na stejném kódu jako klasické 32bitové Windows XP a vyšla v podstatě ve stejnou dobu, a Windows XP 64-Bit Edition, Version 2003, což je stejně jako x64 verze Windows XP pokrevní příbuzný Windows Serveru 2003.

Jak to tedy je s podporou Windows XP x64?

13. května mimo jiné vyšla pro operační systémy Windows bezpečnostní aktualizace KB2962488 v rámci Security Bulletinu MS14-027. Na té jsem si ověřil, že Windows Update aktualizaci pro Windows XP x64 nenabízí, zatímco pro Windows Server 2003 x64 ji nabídne.

Co se stane, když stáhnu ručně aktualizaci pro Windows Server 2003 x64 a pokusím se ji spustit ve Windows XP x64? Možná budete překvapeni, možná ne, ale stane se to, že se aktualizace nenainstaluje s tím, že není určena pro tento systém. Jak překvapivé (v tradičním pojetí i ironickém slova smyslu, jak chcete). Je to jako kdyby najednou přestala být podporována verze Windows 7 Home Premium, ale Windows 7 Ultimate byla nadále podporována.

Kb 2926765 Setup Error

Ať je to jak chce, aktualizace se odmítá nainstalovat. Pokud aktualizaci vybalíte (třeba jejím spuštěním v příkazovém řádku s parametrem -x) a podíváte se do souboru update_SP2QFE.inf, najdete tam velmi zajímavou sekci:

[Prerequisite]
Condition=AndOp,Prereq.XPAMDInstallBlock.Section

Ta nám říká, co se má před instalací zkontrolovat a odkazuje nás do sekce XPAMDInstallBlock. A tam to je:

[Prereq.XPAMDInstallBlock.Section]
PresentOp=CheckReg,HKLM,"SYSTEM\CurrentControlSet\Control\ProductOptions",ProductType,0x00000000
NotEqualOp=CheckReg,HKLM,"SYSTEM\CurrentControlSet\Control\ProductOptions",ProductType,0x00000000,!=,"WinNT"
Display_String="%WrongProductMessage%"

Zkrátka a jednoduše: pokud je v registru v HKLM\System\Curre…\ProductOptions hodnota ProductType s obsahem WinNT, což identifikuje právě klientskou verzi a nikoli serverovou, aktualizace se odmítne nainstalovat.

Microsoft tedy od nynějška do aktualizací pro Windows Server 2003 x64 přidává tyto kontroly navíc. Proto tomu říkám aktivní nepodpora. Pokud by Microsoft x64 XPčka „jen nepodporoval“, vykašlal by se na to, co si s nimi uživatelé udělají a co si do nich nainstalují. Ale on skutečně nechce, aby si uživatelé instalovali záplaty pro Windows Server 2003 x64 do Windows XP x64, přestože tomu v naprosto drtivé většině případů (ne-li ve všech) nic zásadního nebrání. Přitom veselé je, že v tomtéž INF souboru, jehož zmíněná sekce instalaci na XP x64 brání, se klasicky počítá s tím, že se to dá do Windows XP x64 nainstalovat, jsou tam příslušné údaje pro odinstalaci a popisky.


SP_TITLE = "Security Update for Windows x64 (KB2926765)"
SP_TITLE_XP = "Security Update for Windows XP (KB2926765)"
SP_TITLE_WS03 = "Security Update for Windows Server 2003 (KB2926765)"

Překvapuje mě to o to víc, když zkusím odhadnout, jaký asi podíl na trhu OS má Windows XP x64 a tedy že se Microsoft vůbec obtěžuje těm pár nadšencům házet klacky pod nohy. No, ale dělá to. Prostě no…

Co s tím?

Jednoduché řešení jsem narychlo nenašel. Úprava patřičného INF souboru tak, že se z něj prostě vyhodí ta kontrolní sekce, je slepou uličkou, protože selže kontrola integrity (aktualizace je patřičně podepsána a zabezpečena proti pozměnění).

Kb 2926765 Setup Error Update

Úprava příslušné položky ProductType v registru na ServerNT (což je to, co identifikuje serverovou verzi OS) je mission imposible, protože systém si to na úrovni jádra hlídá a při pokusu o změnu to ihned vrátí zpátky a ještě vám vynadá, že jste porušili licenci.

Windows License Violation

A když se o tuto úpravu pokusíte offline (upravíte registr v jiném OS a pak znovu nabootujete), skončíte v modré obrazovce podobného významu.

Bsod System License Violation

Asi nejjednodušším řešením je vybalit aktualizaci, zjistit, co dělá, které soubory nahrazuje a jaké registry upravuje a aplikovat tuto změnu ručně v operačním systému (v případě této aktualizace se vlastně jen nahrazují dva soubory). S přepisem systémových souborů novými ze záplaty si obvykle lze nějak poradit, každopádně je to řešení hodně krkolomné, protože co záplata, to jiný postup. Ale řešením by to asi bylo (pro někoho možná i tím nejjednodušším).

Poněkud systémovějším řešením je úprava registru tak, aby si systém myslel, že je serverový a neskončil v modré obrazovce. Jde to, ale pohybujeme se na hranici (spíš za hranicí) legálnosti postupu, takže budu jen naznačovat. Kromě hodnoty ProductType je třeba upravit i hodnotu SystemPrefix, umístěnou nepříliš daleko v registru od této, přičemž nápovědou pro úpravu je, že třetí bit posledního bajtu této hodnoty (třetí zprava ;-) označuje serverovou variantu OS, pokud je nastaven (tedy 1) a klientskou, pokud nastaven není (tedy 0).

Windows Server 2003 Boot Logo

Po této úpravě systém naběhne, ale po přihlášení stejně pyskuje a ihned pak odhlašuje.

Windows Product Activation Error 0 X 80070002

Další nápověda: Pokud si systém lehce hacknete tak, aby se místo procesu sethc.exe spouštěl cmd.exe (jistě znáte klávesovou objížďku pět shiftů ;-), lze s určitou dávkou úsilí záplatu přeci jen nainstalovat.

Spesna Instalace Aktualizace Kb 2926765 Do Windows Xp X 64

Asi není třeba připomínat, že poté je potřeba opět v jiném systému úpravy registru vrátit do původní podoby, aby se systém tvářil opět jako Windows XP x64 bez problémů s licencí. S automatickou aktualizací tradiční klientské verze Windows XP x64 je ale nejspíš skutečně konec, o 32bitové ani nemluvě (ta nemá žádnou nadále podporovanou pokrevně příbuznou variantu, od níž by bylo možné si záplaty vypůjčit). Edit: a je to neskutečně primitivní, značně jednodušší než s Windowx XP x64.

Aktualizace Kb 2926765 Nainstalovana Ve Windows Xp X 64

Více jsem takhle narychlo nezkoumal (ani to, jestli je postup aplikovatelný pro další záplaty, ale předpokládám, že s mnohými to fungovat bude), takže jestli existuje nějaké efektivnější řešení, určitě ho najdete. Strýček Google budiž vaším pomocníkem, případně můžete využít i pár jeho konkurentů, pokud k němu cítíte vrozený odpor.

Tagy: 

WIFT (Google+)

Bývalý dlouholetý redaktor internetového magazínu CDR-Server / Deep in IT, který se věnoval psaní článků o IT a souvisejících věcech prakticky od založení CD-R serveru. Od roku 2014 funguje v jedné mezinárodní firmě jako databázový administrátor a psaní článků už fakticky pověsil na hřebík.

více článků, blogů a informací o autorovi

Diskuse k blogu Kterak Microsoft »aktivně« nepodporuje Windows XP x64

Pátek, 19 Srpen 2016 - 10:39 | Aleš Ulrych | Sice to je už dva roky out, ale pokud někdo...
Pondělí, 19 Květen 2014 - 16:27 | David Ježek | už několik měsíců ne.
Pátek, 16 Květen 2014 - 13:51 | WIFT | „<em>Já bych prostě raději zkusil variantu...
Pátek, 16 Květen 2014 - 07:44 | simik | OK. Ale je rozdíl mezi nějakým nesmyslným zákonem...
Čtvrtek, 15 Květen 2014 - 22:25 | WIFT | Asi jsem měl dodat, že ta poznámka je z doby, kdy...
Čtvrtek, 15 Květen 2014 - 22:22 | Kedar Míša | Aha, takže já chci všechno zdarma? Já snad napsal...
Čtvrtek, 15 Květen 2014 - 18:25 | asko | Tvoj koment je skor smutny pretoze tvoja znama ma...
Čtvrtek, 15 Květen 2014 - 14:38 | WIFT | Není to o názoru a jeho ne/akceptaci, měl jsem...
Čtvrtek, 15 Květen 2014 - 13:09 | tomasxxxx | anicka uz pre vas nepise?
Čtvrtek, 15 Květen 2014 - 11:26 | David Ježek | Dobrý den, David Ježek na tomto serveru vystupuje...

Zobrazit diskusi