Státní správa a školství jsou z pohledu správy ICT prostředků jedny z nejsmutnějších a zároveň nejzábavnějších odvětví činnosti vůbec. Zkostnatělá struktura hnaná těmi nejhoršími politickými ideologiemi způsobila, že často není vůle na strategický rozvoj a když náhodou je, všechno se proinvestuje tak, aby z toho měly prospěch jenom aktivisti a vývojáři čehosi a ne už tak koncová uživatelská základna, ať už jí je myšleno cokoliv. Zejména druhé jmenované prostředí u nás tolik trpí Microsoftem a kromě něj i tlakem ultralevicových neziskovek, které mají namísto propagace vzdělávání a otevřenosti prostředků pro něj zcela jiné cíle, přičemž je výsledek vlastně takový, že všechno, co by se dalo parádně zvládnout prakticky jakýmkoliv UNIXem, je už zdánlivě v době deploye Windows zastaralé a nedá se to nikdy používat. Samozřejmě spoustu moderních interaktivních učebnic je v dnešní době dělaných i tak, aby podporovaly vyloženě heterogenní prostředí nezávislé na operačním systému, jako třeba takové Oxfordí angličtiny, nicméně existují taky takové produkty, které se pod svou slupkou chovají podobně zlověstně jako Radana Lencová se svým marxistickým zločinem Comenia Sans a s plnou hubou aktivismu vykořisťují výhody tržní ekonomiky za jediným účelem - deformaci českých dětí, rozvracení českého školství a potažmo celého státu a národa. Jako technickou páku si k tomu volí čím dál vyšší nároky, které jsou ze samé podstaty nesmyslné a jejich jediným účelem je donutit zasažené instituce čerpat dotace a utrácet je u vybraných dodavatelů za stále novější vybavení a pokud možno ho průběžně ještě inovovat a obměňovat za tučné peníze. To samozřejmě musí skončit, klidně i za použití násilí, ale to byla trochu odbočka mimo. Počítače přestaly být legrace, když se začalo podvádět.
Kecy často nemají cenu, pusťme se do případové studie z horkých letních dnů 2017. Zkrátka a dobře si představme notebooky HP nakoupené za pochybné evropské peníze v roce 2011, které přišly bez nějakého jasného plánu a už předpřipravené pro koncové používání, tedy bez režie ICT managementu na jakékoliv úrovni. A na nich byly nasazené Windows 7, jakože RTM, toho času ještě bez SP1, který bohužel přišel ještě 15. března toho roku, takže na začátku roku školního zavládl vesmírem chas a aktualizace. Samozřejmě kdo se tomu nepoddal, běžel si v pohodě až do konce hardwarové podpory, třeba než vyhořela grafická karta, nebo než prostě odešla baterie, kterou muselo pak velitelství nějak vyservisovat. V tuhle chvíli ale předpokládejme, že chceme uspokojit dodavatele a rozjet co nejnovější .NET nad 4.5 a více, který ovšem bez SP1 nepoběží. A bude to práce na celé týdny.
Obrovský seznam selhaných aktualizací s chybou SXS_ASSEMBLY_MISSING je nesmírně zajímavý ze svého původu, zvláště když k němu u větší části naprosto stejného hardwarově-softwarového vybavení nikdy předtím nedošlo. Na vině může být špatné načasování, chybějící připojení v té době, neochota uživatelů, nebo dokonce cokoliv spojeného s instalací ovladačů ať už od HP, nebo nějakého jiného čerta. A těžko říct, kde vlastně začít. Možná stojí za úvahu prozkoumat %windir%\Logs\CBS\CBS.log a pokusit se ihned porozumět tomu, co vlastně nejde, ale nikdy není rozhodně na škodu zkusit všechny klasické osvědčené triky, totiž pokontrolovat stav systému přes SFC utilitu (sfc /scannow), smazat seznam starých aktualizací z %windir%\SoftwareDistribution a dost možná také trochu magie s katalogy, tedy jejich kontrolu a v případě neúspěchu jejich smazání a vygenerování nových.
C:\> net stop cryptsvc
C:\> esentutl /p %systemroot%\System32\catroot2\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\catdb
C:\> xcopy %systemroot%\System32\catroot2 %systemroot%\System32\catroot2.old
C:\> del /f %systemroot%\System32\catroot2
C:\> net start cryptsvc Jako další už pak může přijít jen zevrubná kontrola proti malware, nástroj pro Windows Update Diagnostics a případně samostatný balíček KB947821, který by měl připravit systém na update, nebo taky ne. Zábavná situace nastává ale až ve chvíli, kdy všechno tohle selže. Co pak?
Samozřejmě vycházíme z toho, že není možné celý systém smazat a udělat znova, protože nám to nedovoluje licence, elektronické podpisy a velmi nainstalovaný software, od kterého už dávno chybí klíče a tak. Často se pak můžeme setkat s radou doporučující měkkou reinstalaci, tj. pokus o upgrade běžícího systému z instalačního DVD Windows 7 na tu samou verzi. V principu je to velmi zajímavé a jistě by to pomohlo, bohužel v té době to fungovalo tak, že původní Windows 7 RTM měly i pro x64 verzi jen 32bitový instalátor, tedy kontrola kompatibility i při výběru odpovídající x64 edice skončí s chybou, že není možné upgradovat 32 na 64 a vice versa. Naopak nové DVDčko s hotovým SP1 nedovolí upgrade, neboť v systému chybí SP1. Je to MS logika, kterou není možné zlomit. Takže od začátku, smazat v nějakém live NTFS-3G prostředí logy a dočasné soubory, přihlásit se jako admin, spustit instalaci samostatného balíčku SP1, počkat na jeho selhání a pokusit se číst logy.
Existují aktualizace, které v první řadě znemožňují instalaci SP1, je jich dokonce několik. Asi nejsnazší způsob, jak to zařídit, je smazat vlastně všechny nainstalované aktualizace. Kdo kdy viděl seznam nainstalovaných aktualizací, jistě tuší, že je tam nahoře tlačítko pro jejich odinstalaci. Jenže počkat, ono jde vybrat jen jeden řádek najednou. Lol. Zábava na celé odpoledne? Abort? Retry? Fail? A nešlo by to nějak jinak? Pochopitelně i na Windows platí BSD poučka, tedy je-li nějaká úloha repetitivní, automatizujeme ji. Lze předpokládat, že k dispozici není PowerShell, který by stejně napáchal víc škody než užitku, takže na výběr zůstává jen adminský Příkazový řádek. Kupodivu existuje způsob, jak zjistit seznam všech aktualizací pomocí dotazování se z konzole pro správu windowsí instrumentace (WMI), konkrétně komponenty QFE (Quick Fix Engineering). No a pro manipulaci se získanými hotfixy pak existuje utilita Windows Update Standalone Agent. Aby bylo možné s ní ocasit dávkově, bere kromě požadovaného balíčku ještě norestart pro bezrestartové pokračování a hlavně quiet, aby to nevyhazovalo potvrzovací okna. Spojit tyto dva nástroje v jeden, když na holých Windows není nic tak základního, jako třeba GNU sed, je docela umění, nicméně na dva kroky to udělat lze.
C:\> for /f "tokens=2 delims=B " %K in ('wmic qfe get hotfixid ^| findstr KB') do @echo wusa /uninstall /KB:%K /quiet /norestart >> unkb.cmd
Tímhle vygenerujeme unkb.cmd skript, který nese dávku odinstalovačníků všech získaných aktualizací. Spustíme a čekáme, zda křeček nespadne, prostě několik hodin to necháme být a pak restartujeme. Bývá ovšem taky dobrým nápadem mít v tento okamžik zakázané automatické získávání a instalaci nových aktualizací, jinak se dostaneme do nekonečné smyčky zla a nenávisti. Po této proceduře se znovu můžeme vrhnout na pokus o instalaci SP1 a v případě neúspěchu znovu na CBS.log.
Co se totiž může stát, jsou nějaké pokusy určitých ovladačů nebo jiných komponent sahat si na sestavení jiná, než která odpovídají aktuálně používanému jazyku a národnímu prostředí. To se obecně ve Windows spravuje pomocí MUI balíčků, které ovšem jsou k dispozici jen ve variantě Ultimate, což je vtipné a zákeřné. Googlováním se dá dočíst, že na to existuje Vistalizator, který umí MUI balíčky automaticky dodat do systému. Postupovat se dá tak, že se vždycky nainstaluje ten, u kterého skončila poslední chyba v CBS.log, nebo se zkrátka stáhnou všechny a počká se nějakých deset hodin na jejich nachrochtání do systému.
$ lynx -dump -hiddenlinks=listonly -nonumbers http://froggie.sk/7lp64rtm.html | grep windowsupdate | wget -c -i -
Samozřejmě všechny jazyky asi potřeba nebudou, ale většina z nich zcela jistě. Když už tam ale budou nacpané, je tohle asi poslední bod, ve kterém je možné pokusit se o instalaci SP1 do živého systému. Pokud to i v tento okamžik selže, zřejmě všechny originální nápady už došly a nezbývá než to vyhodit do popelnice i se všemi daty a budoucností našich dětí. Nebo udělat čistou instalaci bez všech licenčních čísel. Ale pokud se to povede, je čas doplnit všechny zbývající aktualizace a přenést takto hotový systém do roku 2017. A třeba smazat i nepotřebné jazyky z MUI, které by už nemusely být potřeba. A dokončit původní práci. Je otázka, jestli za několik týdnů čistého času práce se vyplatí zaplatit, když by technici prostě doporučili všechno zahodit a koupit znovu. Ale jako případová studie to může někoho motivovat a říkat si, že se pořád máme co učit a občas můžeme mít i Service Pack 1, a to navzdory všem, co tvrdí opak a propagují zlo.