четверг, 11 января 2018 г.

Пробуем вылечить ошибку Outlook "Точка входа в процедуру CompareStringOrdinal не найдена в библиотеке dll kernel32.dll"

Ни для кого не секрет, что в корпоративной среде до сих пор нередко можно встретить снятую с поддержки Windows XP, при чём остальной софт может быть весьма современным. Итак, я столкнулся с такой ситуацией - на нескольких машинах стоит WinXP SP3 и Office 10. После недавнего обновления при попытке "запустить почту" пользователи стали получать ошибку "Точка входа в процедуру CompareStringOrdinal не найдена в библиотеке dll kernel32.dll"... краткое расследование показало, что недавно на проблемные машины установились обновления:
Обновление безопасности для Microsoft Excel 2010 (KB4011660) 32-разрядный выпуск;
Обновление безопасности для Microsoft Outlook 2010 (KB4011273) 32-разрядный выпуск;
Обновление безопасности для Microsoft Office 2010 (KB4011611) 32-разрядный выпуск;
Обновление безопасности для Microsoft Office 2010 (KB4011610) 32-разрядный выпуск;
Обновление безопасности для Microsoft Word 2010 (KB4011659) 32-разрядный выпуск;
Собственно, после их установки проблема и стала проявляться.
Если верить описанию метода (функции) CompareStringOrdinal, то он появился в Windows Vista и в XP поддерживаться не будет. Странно, что такое нововведение появилось лишь в недавнем обновлении офиса, но до него всё работало вполне нормально.
Локально решили откатом этих машин до состояния до установки обновлений, а вообще, в такой ситуации остро напрашивается обновление парка или хотя бы операционных систем.

UPD: вот, более дотошные коллеги утверждают, что к данной ошибке приводит конкретно обновление "Обновление безопасности для Microsoft Outlook 2010 (KB4011273) 32-разрядный выпуск", что, вообще-то, логично...

UPD2: поступила информация, что несколько позже вышло ещё одно обновление, вызывающее такую же ошибку: "Такую же ошибку вызывает установка Обновления безопасности для Microsoft Outlook 2010 (KB4011711) 32-разрядный выпуск. После его удаления Outlook 2010 заработал"