- Проверить журнал установки windows
- Как узнать кто установил программу и когда
- Автоматизация оповещения по событиям 11707
- Как найти события установки программ не методом MsiInstaller
- Как узнать кто удалил программу с сервера или компьютера
- Дополнительно
- Файлы журналов программы установки Windows
- Журналы событий установки Windows
- Просмотр журналов событий установки Windows
- Экспорт журнала в файл
- Файлы журнала Log files
- Структура записи журнала Log entry structure
- Анализ файлов журнала Analyze log files
Проверить журнал установки windows
Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов в рунете Pyatilistnik.org. В прошлый раз я вас научил определять кто именно перезагрузил сервер, это полезный навык при расследовании инцидентов. Бывают ситуации, что на сервер используют большое количество пользователей с одинаковыми правами, и вдруг куда-то пропадает одна из программ, вы видите что ее нет, логично, что нужно выяснить кто именно удалил программу. Вот этим мы и займемся, я вас научу получать информацию, кто установил или удалил программу в Windows.
Как узнать кто установил программу и когда
И так у меня есть тестовый сервер с операционной системой Windows Server 2019 и я на него в качестве демонстрации буду устанавливать Microdoft Edge Chromium, FireFox Mozilla, а так же LogParser. Все события, что генерируются в операционной системе Windows появляются в просмотре событий, это лог файлы разбитые по журналам.
Открываем логи Windows, журнал «Приложение (Application)» или «Система (System)«, все зависит от инсталлятора которым собран пакет, так как есть те, что используют метод MsiInstaller , но есть и другие. Теперь запускаем инсталлятор LogParser. После установки я открываю журнал «Приложение», где я вижу ряд событий,
первое это событие с ID 1040 покажет вам начало установки программы:
Далее идет сообщение с кодом ID 10000.
Далее вы увидите событие, где заканчивается установка программы ID 1042
Завершается сеанс событием с кодом ID 10001
И заканчивается установка программы событием с кодом ID 11707
Иногда вы можете увидеть событие с ID 1033.
Если вы внимательны, то можете обратить внимание, что источником событий тут выступает MsiInstaller. Зная это вы легко можете произвести фильтрацию. Для этого в правой части найдите пункт «Фильтр текущего журнала»
В источниках событий выберите из выпадающего списка пункт MsiInstaller.
В итоге у меня получилось вот так.
Теперь когда события отфильтрованы по источнику MsiInstaller, вам будет еще легче найти кто установил, что установил и когда. В моем примере это сделал ROOT\Администратор.
Так же событие ID 11707 с пользователем «SYSTEM (СИСТЕМА)» вы можете обнаружить, когда люди используют «Software Store» в SCCM
Если вы любите веб интерфейс, то должны уже использовать Windows Admin Center, в котором вы легко можете с любого устройства подключиться к просмотру событий нужного сервера и посмотреть необходимые события.
Автоматизация оповещения по событиям 11707
Теперь когда вы знаете, как находить события по установке программ в системах семейства Windows, вам нужно автоматизировать данный процесс. Например, получать по почте, кто установил, где и что. В этом нам поможет конечно же PowerSell. Смысл автоматизации состоит в том, что вы на нужном сервере создаете задание в планировщике Windows, где будет запускаться скрипт PowerShell. Я вам приведу два скрипта, первый тот, что гуляет на просторах интернета.
Тут главное заполнить:
- Адрес вашего SMTP сервера
- От кого будет письмо
- Кому отправлять письмо
- Пароль от ящика отправителя
В результате вы получите письмо вот такого содержания:
Тут два недостатка, во первых вы не видите, где был установлен новый софт, понятно, что можно на каждом сервере, где выполняется скрипт писать свою тему, но это не так удобно. Во вторых у вас в место имени пользователя идет SID, который потом нужно конвертировать в понятное имя.
Так же вам никто не запрещает просто открыть PowerShell и ввести не сложный код:
Напоминаю, что select-object -first 1 выводит первое событие, можете увеличить на нужное вам.
Как найти события установки программ не методом MsiInstaller
Как я и писал выше не все инсталляторы программ используют метод MsiInstaller, например при установке Edge Chrome или Mozilla Firefox, вы в журнале «Приложение» не обнаружите события с кодом ID 11707. В таком случае вам нужно перейти в журнал «СИСТЕМА (SYSTEM)» и сразу отфильтровать события по номеру ID 7045.
Выглядит событие ID 7045 вот так:
Имя службы: Mozilla Maintenance Service
Имя файла службы: «C:\Program Files (x86)\Mozilla Maintenance Service\maintenanceservice.exe»
Тип службы: служба режима пользователя
Тип запуска службы: Вручную
Учетная запись службы: LocalSystem
Имя службы: Microsoft Edge Elevation Service
Имя файла службы: «C:\Program Files (x86)\Microsoft\Edge\Application\80.0.361.111\elevation_service.exe»
Тип службы: служба режима пользователя
Тип запуска службы: Вручную
Учетная запись службы: LocalSystem
Как узнать кто удалил программу с сервера или компьютера
По аналогии с установкой, процесс деинсталляции или как его еще называют удаление, генерирует свои события в журналах Windows. Если мы говорим, про источник MsiInstaller из журнала «Приложение (Application)», то нам нужно фильтровать события по ID 11724 и ID 1034.
Так же вы можете спокойно использовать описанный выше скрипт и команду PowerShell, для автоматизации оповещения, о удалении программы.
Дополнительно
Хочу отметить, что существует ряд платных программ которые специализируются на аудите событий в Windows системах, например netwrix и им подобные, где вы так же легко сможете получать всю информацию, о том кто и когда установил программу, или кто и когда ее удалил.
Файлы журналов программы установки Windows
Установка Windows® создает файлы журналов для всех действий, выполняемых во время установки. При наличии проблем с установкой Windows просмотрите файлы журналов для поиска и устранения неполадок.
Файлы журналов установки Windows сохраняются в следующих каталогах:
Расположение файла журнала | Описание | ||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Файл журнала Log file | Этап: расположение Phase: Location | Описание Description | Варианты использования When to use |
setupact.log setupact.log | Нижний уровень: Down-Level: $Windows. BT\Sources\Panther | Содержит сведения о действиях программы установки на низкоуровневом этапе. Contains information about setup actions during the downlevel phase. | Все ошибки нижнего уровня и отправная точка для анализа отката. All down-level failures and starting point for rollback investigations. Это самый важный журнал для диагностики проблем с установкой. This is the most important log for diagnosing setup issues. |
Запуск при первом включении: OOBE: $Windows. BT\Sources\Panther\UnattendGC | Содержит сведения о действиях на этапе запуска при первом включении. Contains information about actions during the OOBE phase. | Исследование откатов, сбой которых произошел на этапе первого включения компьютера: 0x4001C, 0x4001D, 0x4001E и 0x4001F. Investigating rollbacks that failed during OOBE phase and operations – 0x4001C, 0x4001D, 0x4001E, 0x4001F. | |
Откат: Rollback: $Windows. BT\Sources\Rollback | Содержит сведения о действиях во время отката. Contains information about actions during rollback. | Исследование откатов общего характера: 0xC1900101. Investigating generic rollbacks — 0xC1900101. | |
Предварительная инициализация (до низкоуровневого этапа): Pre-initialization (prior to downlevel): Windows Windows | Содержит сведения об инициализации установки. Contains information about initializing setup. | Если не удается запустить программу установки. If setup fails to launch. | |
После обновления (после первого запуска компьютера): Post-upgrade (after OOBE): Windows\Panther Windows\Panther | Содержит сведения о действиях программы установки во время установки. Contains information about setup actions during the installation. | Исследование проблем, связанных с процессами после обновления. Investigate post-upgrade related issues. | |
setuperr.log setuperr.log | Аналогично setupact.log Same as setupact.log | Содержит сведения об ошибках программы установки во время установки. Contains information about setup errors during the installation. | Просмотрите все ошибки, возникающие на этапе установки. Review all errors encountered during the installation phase. |
miglog.xml miglog.xml | После обновления (после первого запуска компьютера): Post-upgrade (after OOBE): Windows\Panther Windows\Panther | Содержит сведения о том, что было перенесено во время установки. Contains information about what was migrated during the installation. | Определение проблем, возникающих после переноса данных обновления. Identify post upgrade data migration issues. |
BlueBox.log BlueBox.log | Нижний уровень: Down-Level: Windows\Logs\Mosetup Windows\Logs\Mosetup | Содержит сведения о взаимодействии setup.exe и Центра обновления Windows. Contains information communication between setup.exe and Windows Update. | Используйте при возникновении ошибок WSUS и WU нижнего уровня, а также для 0xC1900107. Use during WSUS and WU down-level failures or for 0xC1900107. |
Вспомогательные журналы отката: Supplemental rollback logs: Setupmem.dmp Setupmem.dmp setupapi.dev.log setupapi.dev.log Журналы событий (\*.evtx) Event logs (\*.evtx) | $Windows. BT\Sources\Rollback | Дополнительные журналы, собранные во время отката. Additional logs collected during rollback. | Setupmem.dmp. Если ошибка ОС проверяется во время обновления, настройка попытается извлечь мини-свалку. Setupmem.dmp: If OS bug checks during upgrade, setup will attempt to extract a mini-dump. Setupapi: проблемы с установкой устройства — 0x30018 Setupapi: Device install issues — 0x30018 Журналы событий: откаты общего характера (0xC1900101) или неожиданные перезагрузки. Event logs: Generic rollbacks (0xC1900101) or unexpected reboots. |
Структура записи журнала Log entry structure
Запись setupact.log или setuperr.log (файлы расположены в C:\Windows) содержит следующие элементы: A setupact.log or setuperr.log entry (files are located at C:\Windows) includes the following elements:
- Дата и время — 08-09-2016 09:20:05. The date and time — 2016-09-08 09:20:05.
- Уровень журнала — сведения, предупреждение, ошибка, неустранимая ошибка. The log level — Info, Warning, Error, Fatal Error.
- Компонент ведения журнала — CONX, MOUPG, PANTHR, SP, IBSLIB, MIG, DISM, CSI, CBS. The logging component — CONX, MOUPG, PANTHR, SP, IBSLIB, MIG, DISM, CSI, CBS.
- Компоненты ведения журнала SP (платформы установки), MIG (модуль миграции) и CONX (сведения о совместимости) будут особенно полезны для устранения неполадок программы установки Windows. The logging components SP (setup platform), MIG (migration engine), and CONX (compatibility information) are particularly useful for troubleshooting Windows Setup errors.
- Сообщение — Операция успешно завершена. The message — Operation completed successfully.
См. перечисленные ниже примеры. See the following example:
Дата и время Date/Time | Уровень журнала Log level | Компонент Component | Сообщение Message |
---|---|---|---|
2016-09-08 09:23:50, 2016-09-08 09:23:50, | Предупреждение Warning | MIG MIG | Не удалось заменить объект C:\Users\name\Cookies. Could not replace object C:\Users\name\Cookies. Целевой объект не может быть удален. Target Object cannot be removed. |
Анализ файлов журнала Analyze log files
Следующие инструкции предназначены для специалистов по ИТ. The following instructions are meant for IT professionals. См. также раздел Коды ошибок обновления данного руководства, чтобы ознакомиться с кодами результатов и кодами расширения. Also see the Upgrade error codes section in this guide to familiarize yourself with result codes and extend codes.
Анализ файлов журнала установки Windows To analyze Windows Setup log files:
- Определите код ошибки программы установки Windows. Determine the Windows Setup error code. Этот код должен быть возвращен программой установки Windows в случае сбоя в процессе обновления. This code should be returned by Windows Setup if it is not successful with the upgrade process.
- На основе кода расширения в коде ошибки определите тип и расположение файлов журналов для изучения. Based on the extend code portion of the error code, determine the type and location of a log files to investigate.
- Откройте файл журнала в текстовом редакторе, например в «Блокноте». Open the log file in a text editor, such as notepad.
- Найдите код результата из кода ошибки программы установки Windows, выполните поиск кода результата в файле и найдите последний экземпляр кода. Using the result code portion of the Windows Setup error code, search for the result code in the file and find the last occurrence of the code. Кроме того, ищите прервать и отказаться от текстовых строк, » » » описанных на шаге 7 ниже. Alternatively search for the «abort» and abandoning» text strings described in step 7 below.
- Поиск последнего экземпляра кода результата To find the last occurrence of the result code:
- Прокрутите до конца файла и щелкните после последнего символа. Scroll to the bottom of the file and click after the last character.
- Нажмите кнопку Изменить . Click Edit .
- Нажмите кнопку Найти . Click Find .
- Введите код результата. Type the result code.
- В разделе Направление выберите Вверх. Under Direction select Up.
- Нажмите кнопку Найти далее. Click Find Next.
- После нахождения последнего экземпляра кода результата прокрутите файл на несколько строк вверх и просмотрите процессы, которые вызвали ошибку перед созданием кода результата. When you have located the last occurrence of the result code, scroll up a few lines from this location in the file and review the processes that failed just prior to generating the result code.
- Найдите следующие важные текстовые строки: Search for the following important text strings:
- «Приложение оболочки запросило отмену»; Shell application requested abort
- «Отмена применения из-за ошибки объекта». Abandoning apply due to error for object
- Декодируйте ошибки Win32, которые отображаются в этом разделе. Decode Win32 errors that appear in this section.
- Запишите метку времени наблюдаемых ошибок в этом разделе. Write down the timestamp for the observed errors in this section.
- Выполните поиск дополнительных сведений, соответствующих этим меткам времени или ошибкам, в других файлах журналов. Search other log files for additional information matching these timestamps or errors.
Например, предположим, что код ошибки — 0x8007042B — 0x2000D. For example, assume that the error code for an error is 0x8007042B — 0x2000D. Если выполнить поиск «8007042B», мы обнаружим следующее содержимое из файла setuperr.log: Searching for «8007042B» reveals the following content from the setuperr.log file:
Некоторые строки в тексте ниже сокращены для удобства. Some lines in the text below are shortened to enhance readability. Дата и время в начале каждой строки (например, 2016-10-05 15:27:08) сокращены до минут и секунд, а имя файла сертификата, которое задано как длинная текстовая строка, сокращено до «CN». The date and time at the start of each line (ex: 2016-10-05 15:27:08) is shortened to minutes and seconds, and the certificate file name which is a long text string is shortened to just «CN.»
Содержимое файла setuperr.log : setuperr.log content:
В первой строке указано, что произошла ошибка 0x00000570 с файлом C:\ProgramData\Microsoft\Crypto\RSA\S-1-5-18 [CN] (как показано ниже): The first line indicates there was an error 0x00000570 with the file C:\ProgramData\Microsoft\Crypto\RSA\S-1-5-18 [CN] (shown below):
0x00000570 — это код ошибки Win32, соответствующий ошибке «ERROR_FILE_CORRUPT. Файл или папка повреждены. Чтение невозможно». The error 0x00000570 is a Win32 error code corresponding to: ERROR_FILE_CORRUPT: The file or directory is corrupted and unreadable.
Поэтому программе установки Windows не удалось перенести поврежденный файл C:\ProgramData\Microsoft\Crypto\RSA\S-1-5-18\ [CN]. Therefore, Windows Setup failed because it was not able to migrate the corrupt file C:\ProgramData\Microsoft\Crypto\RSA\S-1-5-18[CN]. Этот файл — локальный сертификат системы, и его можно удалить. This file is a local system certificate and can be safely deleted. После поиска в файле setupact.log дополнительных сведений найдена фраза «Приложение оболочки запросило отмену» в расположении с такой же меткой времени, как у строк в файле setuperr.log. Searching the setupact.log file for additional details, the phrase «Shell application requested abort» is found in a location with the same timestamp as the lines in setuperr.log. Это подтверждает наши подозрение, что этот файл — причина сбоя обновления: This confirms our suspicion that this file is the cause of the upgrade failure:
Содержимое файла setupact.log : setupact.log content:
setupapi.dev.log content: setupapi.dev.log content:
Этот анализ показывает, что ошибку обновления Windows можно устранить, удалив файл C:\ProgramData\Microsoft\Crypto\RSA\S-1-5-18\ [CN]. This analysis indicates that the Windows upgrade error can be resolved by deleting the C:\ProgramData\Microsoft\Crypto\RSA\S-1-5-18[CN] file. Примечание. В этом примере полное имя файла — C:\ProgramData\Microsoft\Crypto\RSA\S-1-5-18\be8228fb2d3cb6c6b0ccd9ad51b320b4_a43d512c-69f2-42de-aef9-7a88fabdaa3f. Note: In this example, the full, unshortened file name is C:\ProgramData\Microsoft\Crypto\RSA\S-1-5-18\be8228fb2d3cb6c6b0ccd9ad51b320b4_a43d512c-69f2-42de-aef9-7a88fabdaa3f.