Блджад, прекрасный вечер убит продуктами Microsoft. Чисто админско-гиковая байка. Людям далёких от бсодов, визардов, эсдэка, дебага и апдейтов будет неинтересно и нудно. Хотя, если кто-то из неспециалистов считает, что админ - это «чувак, который переустанавливает винду и всегда советует перезагрузиться», то тут я как раз подробно рассказываю, как решаются проблемы в ситуации, когда такие опции неприменимы и не работают.
Предыстория:
У меня десктоп с Windows 7 x64, на котором имеется много софта, настроены автоматические обновления, стоит .net 3.5 и 4.0 Client Profile
У Ленки недавно появился планшет на Windows 8.0 x86, на котором было установлено некоторое количество офисного софта: Office 2007, VPN-клиент, архиватор и ещё какая-то незначительная мелочёвка.
Недавно он обновился до Windows 8.1, после чего, кстати, пришлось переустанавливать VPN-клиент и разбираться, как теперь открывать "все программы". Были настроены автоматические обновления. Сегодня (уже вчера) с утра планшет начинает дурить. При любой попытке залезть в интернет, кидает BSOD IRQL_NOT_LESS_OR_EQUAL в ndis.sys.
Я этим вопросом занялся. Ну, «все знают», что ndis.sys - это драйвер уровня ядра системы, который используется любыми сетевыми службами и драйверами напрямую, или через своего коллегу - tcpip.sys. То-есть, проблема определённо связанна с сетью. Поковырялся в событиях, нашёл много интересного, но ничего конкретного. Пробовал отрубать все радио-адаптеры, однако это не помогает. Нутром чую, что если даже отрубание физических сетевых адаптеров не лечит проблемы с ndis.sys, значит дело в vpn-клиенте. Лена меня, однако, уверяет, что нифига, такого быть не может, у чувака на работе такой же планшет с той же версией винды и клиента. Ладно, пропускаю этот вариант, решаюсь просмотреть дамп памяти. (Ну этот, memory.dmp, который через windbg с пакетом символов анализируется)
Выясняется, что отдельного дистрибутива Windows 8.1 Debugging Tools в открытом доступе не существует, он качается только через веб-инсталлер Windows SDK. Но на планшете не работает нормально сеть, поэтому пользоваться этим инсталлером нельзя! При этом в утилите есть опция скачивания компонентов как Stand-Alone-дистрибутивов, так не одна сука в интернете не выложила их, нге говоря уж о Microsoft. Я кидаюсь запускать этот инсталлер на своём десктопе и обнаруживаю, что утилита сперва хочет, чтобы был установлен .net Framework 4.5. Я пытаюсь его поставить и получаю какую-то ошибку, загадочно называемую "ASIA". Из интернета нахожу лишь какое-то малонадёжное но очень убедительно написанное решение проблемы, связанное с предварительной установкой .net Framework Extended 4.0. Покорно его ставлю, перезагружаюсь и выясняю, что это проблему "Азия" не решает.
Плюю на этот дебаг, начинаю методично сносить на планшете все вчерашние обновления. Это, как ни странно, сразу помогает, он начинает работать с сетью, после чего я прямо на нём ставлю Debugging Tools и быстренько выясняю, что виной всему таки был один из кёрнел-драйверов StoneGate VPN Client. Пью чай, рассказываю, какой я молодец, в это время мой десктоп втихаря начинает качать апдейты, ветка которых открылась после установки .net, и перезагружается. Я прихожу и обнаруживаю, что у меня вообще нихрена не запускается (ошибка 0xC0000005), место на диске C: кончилось, завтра работать, а время примерно пол-первого. Я начинаю пытаться снести .net 4.0 и понимаю, что их инсталлеры используют какие-то не совсем майкрософтовские экзешники, поэтому тоже запускаются с 0xC0000005. Я в полном ужасе начинаю пытаться курить интернет, но обнаруживаю, что даже Internet Explorer запускаясь падает (хотя я отрубил все эддоны), поэтому приходится браузить с ноутбука. Нахожу в обсуждениях какие-то невнятные указания на некие KB, начинаю просматривать список установленных обновлений и случайно замечаю, что мне 13 и даже 14 числа установилось гораздо больше обновлений, чем я до этого предполагал. Я с недовольными криками начинаю всё это добро сносить, после перезагрузки таки добившись того, что программы запускаются и даже .net 4.0 теперь сносится. Короче говоря, невероятными усилиями результаты работы новомодных мсапдейтов ликвидируются.
Сейчас и на планшете, и на десктопе обновления настроены в полностью ручной режим.
Только вот не надо сразу бросаться буквами i. Борьба с апдейтами - это не больший геморрой и не меньшая неизбежность, чем рутование всех этих андроидов, айпэдов и прочей юниксовой хренотени. Зато на Windows vpn-клиенты настраиваются админами с помощью визардов и этими же визардами генерятся готовые msi, которые двумя кликами юзеры себе ставят с готовыми настройками и радуются жизни. Собственно, в мире винды почти всё можно автоматизировать, но этим пользуются только в крупных организациях, где научиться работать с MS Installer и доменными политиками проще и быстрее, чем всем ставить комплекты софта руками.
В сухом остатке: Ну не совместим Windows 8.1 со StoneGate VPN Client 3.5.1, если стоит одно из этих обновлений: kb2923528 (- Скорей всего это), kb2843630, kb2909210, kb2901125, kb2901128. Либо шашечки, либо ехать.