Назад | Перейти на главную страницу

Java устанавливается и удаляется без запроса разрешения

Клиент предоставил экземпляр Windows Server 2012R2 для использования в качестве нашего сервера. Этим утром (25 июля) я повторно подключился к коробке, чтобы изменить свой пароль, и сразу получил запрос об успешной установке Java и удалении старых версий Java.

Это вызывает тревогу, потому что наше серверное приложение основано на Java и в настоящее время работает на более старой версии Java (что подходит для наших целей), и удаление более старой версии Java может привести к сбою нашего серверного приложения, если вы удалите версию, которую оно использует. !

Естественно, я отказался удалить старую версию Java, но мы с коллегой были обеспокоены тем, что мне даже предложили. Если кто-то другой вошел в систему, не зная о нашей зависимости Java, он может удалить старую версию.

Я проверил свои настройки обновления Java и обнаружил, что он настроен на проверку, но запрашивает перед загрузкой. (Поскольку я отключил даже проверку.)

Мы провели дальнейшее расследование и обнаружили в средстве просмотра событий, что 20 июля около полудня на приставке была установлена ​​новая версия Java (8 update 101), и, очевидно, я это сделал (или это было сделано с моим идентификатором пользователя). Однако мы знаем, что я этого не делал, поскольку в тот день я был в отпуске в Йеллоустонском национальном парке без интернета! Мой идентификатор пользователя - это учетная запись AD с правами администратора, но она называется smmccants и не имеет общего пароля. У меня был сеанс, запущенный на сервере (я обычно отключаюсь, а не выхожу из системы).

Я не смог найти ничего интересного в средстве просмотра событий после повторного подключения и взаимодействия с диалоговыми окнами Java сегодня утром (25.07.2016, незадолго до 10:00).

Мы хотим понять, что произошло, и предотвратить это в будущем. Есть идеи, как это могло произойти автоматически и где еще мы должны искать подсказки?

Ниже приведены журналы, которые я нашел в EventViewer.

Из средства просмотра событий (источник: MsiInstaller), 20.07.2016, 11:59:44:

Начало транзакции установщика Windows: C: \ Users \ smmccants \ AppData \ LocalLow \ Oracle \ Java \ jre1.8.0_101 \ jre1.8.0_101full.msi Идентификатор клиентского процесса: 87064

Из MsiInstaller, 20.07.2016, 12:00:29:

Продукт: Java 8 (обновление 101) - установка успешно завершена

-

Установщик Windows установил продукт. Название продукта: Java 8 (обновление 101). Версия продукта: 8.0.1010.13. Язык продукта: 1033 Производитель: Oracle Corporation. Статус успешной установки или ошибки: 0.

-

Завершение транзакции установщика Windows: C: \ Users \ smmccants \ AppData \ LocalLow \ Oracle \ Java \ jre1.8.0_101 \ jre1.8.0_101full.msi. Идентификатор клиентского процесса: 87064

-

Начало транзакции установщика Windows: {4A03706f-666A-4037-7777-5F2748764D10}. Идентификатор клиентского процесса: 87064

А затем из RestartManager (что бы это ни было ...):

Начало сеанса 0 - 2016-07-20T17: 00: 29.904899600Z

Наконец, мы получаем новую отметку времени - 20.07.16 12:00:39 и сообщает MsiInstaller:

Продукт: Java Auto Updater - Удаление успешно завершено.

Кто заказал удаление и как они это сделали через мою учетную запись? Вероятно, часть процесса установки Java 8 Update 101.

Установщик Windows удалил продукт. Название продукта: Java Auto Updater. Версия продукта: 2.8.77.3 Язык продукта: 1033 Производитель: Oracle Corporation. Статус успешного удаления или ошибки: 0.

-

Завершение транзакции установщика Windows: {4A03706f-666A-4037-7777-5F2748764D10}. Идентификатор клиентского процесса: 87064

-

Начало транзакции установщика Windows: C: \ Users \ smmccants \ AppData \ LocalLow \ Oracle \ Java \ jre1.8.0_101 \ au.msi. Идентификатор клиентского процесса: 87064

Сейчас в 12:00:40

Продукт: Java Auto Updater - установка успешно завершена.

-

Установщик Windows установил продукт. Название продукта: Java Auto Updater. Версия продукта 2.8.101.13. Язык продукта: 1033. Производитель: Oracle Corporation. Статус успешной установки или ошибки: 0.

-

Завершение транзакции установщика Windows: C: \ Users \ smccants \ AppData \ LocalLow \ Oracle \ Java \ jre1.8.0_101 \ au.msi. Идентификатор клиентского процесса: 87064.

-

Начало транзакции установщика Windows: {26A24AE4-039D-4Ca4-87B4-2F83218077F0}. Идентификатор клиентского процесса: 87064

Теперь вернемся на одну секунду назад к 12:00:39 для одного сообщения от RestartManager:

Завершение сеанса 0 началось 2016-07-20T17: 00: 29.904899600Z

Теперь RestartManager в 12:00:40:

Начало сеанса 0 - 2016-07-20T17: 00: 40.326806900Z

-

Завершение сеанса 0 началось 2016-07-20T17: 00: 29.904899600Z

Теперь мы переходим к действительно пугающим сообщениям MsiInstaller в 12:01:07:

Продукт: Java 8 (обновление 77) - Удаление успешно завершено.

-

Установщик Windows удалил продукт. Название продукта: Java 8 (обновление 77). Версия продукта: 8.0.770.3. Язык продукта: 1033. Производитель: Oracle Corporation. Статус успешного удаления или ошибки: 0.

Следующее сообщение регистрируется не мной, а пользователем SYSTEM.

Завершение транзакции установщика Windows: {26A24AE4-039D-4Ca4-87B4-2F83218077F0}. Идентификатор клиентского процесса: 87064

Это все, что я нашел.

Мы больше не видели, чтобы проблема возникла. Мы сделали две вещи, чтобы смягчить это поведение:

  1. Установите автоматическое обновление Java, чтобы никогда не проверять наличие обновлений.
  2. Написал код запуска нашего сервиса, чтобы лучше понимать, где найти Java. Мы можем жестко закодировать путь к версии Java, но если ее там нет, он обратится к реестру, чтобы найти другую установленную версию. Таким образом, удаление старой версии не должно сломать наш сервер.