Журнал установки и удаления программ windows 10
Это тема уровня 400 (расширенный).
Полный список тем в этой статье см. в разделе Устранение ошибок при обновлении до Windows 10.
Во время каждого этапа процесса обновления создаются несколько файлов журнала. Эти файлы журнала необходимы для устранения неполадок при обновлении. По умолчанию папки, содержащие эти файлы журнала, скрыты на компьютере, где выполняется обновление. Для просмотра файлов журнала включите отображение скрытых элементов в проводнике Windows или используйте средство, чтобы автоматически собирать эти журналы. Самый полезный журнал — setupact.log. Файлы журнала находятся в разных папках в зависимости от этапа установки Windows. Как мы уже знаем, вы можете определить этап из кода расширения.
Кроме того, отчеты об ошибках Windows разделе в этом документе для справки по поиску кодов ошибок и файлов журналов.
В следующей таблице описаны некоторые файлы журнала и способы их использования для устранения неполадок.
Файл журнала | Этап: расположение | Описание | Варианты использования |
---|---|---|---|
setupact.log | Нижний уровень: $Windows.~BT\Sources\Panther | Содержит сведения о действиях программы установки на низкоуровневом этапе. | Все ошибки нижнего уровня и отправная точка для анализа отката. Это самый важный журнал для диагностики проблем с установкой. |
setupact.log | Запуск при первом включении: $Windows.~BT\Sources\Panther\UnattendGC | Содержит сведения о действиях на этапе запуска при первом включении. | Исследование откатов, сбой которых произошел на этапе первого включения компьютера: 0x4001C, 0x4001D, 0x4001E и 0x4001F. |
setupact.log | Откат: $Windows.~BT\Sources\Rollback | Содержит сведения о действиях во время отката. | Исследование откатов общего характера: 0xC1900101. |
setupact.log | Предварительная инициализация (до низкоуровневого этапа): Windows | Содержит сведения об инициализации установки. | Если не удается запустить программу установки. |
setupact.log | После обновления (после первого запуска компьютера): Windows\Panther | Содержит сведения о действиях программы установки во время установки. | Исследование проблем, связанных с процессами после обновления. |
setuperr.log | Аналогично setupact.log | Содержит сведения об ошибках программы установки во время установки. | Просмотрите все ошибки, возникающие на этапе установки. |
miglog.xml | После обновления (после первого запуска компьютера): Windows\Panther | Содержит сведения о том, что было перенесено во время установки. | Определение проблем, возникающих после переноса данных обновления. |
BlueBox.log | Нижний уровень: Windows\Logs\Mosetup | Содержит сведения о взаимодействии setup.exe и Центра обновления Windows. | Используйте при возникновении ошибок WSUS и WU нижнего уровня, а также для 0xC1900107. |
Вспомогательные журналы отката: Setupmem.dmp setupapi.dev.log Журналы событий (*.evtx) | $Windows.~BT\Sources\Rollback | Дополнительные журналы, собранные во время отката. | Setupmem.dmp. Если ошибка ОС проверяется во время обновления, настройка попытается извлечь мини-свалку. Setupapi: проблемы с установкой устройства — 0x30018 Журналы событий: откаты общего характера (0xC1900101) или неожиданные перезагрузки. |
Структура записи журнала
Запись setupact.log или setuperr.log (файлы расположены в C:\Windows) содержит следующие элементы:
Дата и время - 2016-09-08 09:20:05.
Уровень журнала — информация, предупреждение, ошибка, смертельная ошибка.
Компонент ведения журнала — CONX, MOUPG, PANTHR, SP, IBSLIB, MIG, DISM, CSI, CBS.
Компоненты ведения журнала SP (платформы установки), MIG (модуль миграции) и CONX (сведения о совместимости) будут особенно полезны для устранения неполадок программы установки Windows.
См. перечисленные ниже примеры.
Анализ файлов журнала
Следующие инструкции предназначены для специалистов по ИТ. См. также раздел Коды ошибок обновления данного руководства, чтобы ознакомиться с кодами результатов и кодами расширения.
Анализ файлов журнала установки Windows
Определите код ошибки программы установки Windows. Этот код должен быть возвращен программой установки Windows в случае сбоя в процессе обновления.
На основе кода расширения в коде ошибки определите тип и расположение файлов журналов для изучения.
Откройте файл журнала в текстовом редакторе, например в «Блокноте».
Найдите код результата из кода ошибки программы установки Windows, выполните поиск кода результата в файле и найдите последний экземпляр кода. Или же выполните поиск слов «abort» и «abandoning», которые описано на шаге 7 ниже.
Поиск последнего экземпляра кода результата
После нахождения последнего экземпляра кода результата прокрутите файл на несколько строк вверх и просмотрите процессы, которые вызвали ошибку перед созданием кода результата.
Найдите следующие важные текстовые строки:
- «Приложение оболочки запросило отмену»;
- «Отмена применения из-за ошибки объекта».
Декодируйте ошибки Win32, которые отображаются в этом разделе.
Запишите метку времени наблюдаемых ошибок в этом разделе.
Выполните поиск дополнительных сведений, соответствующих этим меткам времени или ошибкам, в других файлах журналов.
Например, предположим, что код ошибки — 0x8007042B — 0x2000D. Если выполнить поиск «8007042B», мы обнаружим следующее содержимое из файла setuperr.log:
Некоторые строки в тексте ниже сокращены для удобства. Дата и время в начале каждой строки (например, 2016-10-05 15:27:08) сокращены до минут и секунд, а имя файла сертификата, которое задано как длинная текстовая строка, сокращено до «CN».
setuperr.log content:
В первой строке указано, что произошла ошибка 0x00000570 с файлом C:\ProgramData\Microsoft\Crypto\RSA\S-1-5-18 [CN] (как показано ниже):
0x00000570 — это код ошибки Win32, соответствующий ошибке "ERROR_FILE_CORRUPT. Файл или папка повреждены. Чтение невозможно".
Поэтому программе установки Windows не удалось перенести поврежденный файл C:\ProgramData\Microsoft\Crypto\RSA\S-1-5-18\ [CN]. Этот файл — локальный сертификат системы, и его можно удалить. После поиска в файле setupact.log дополнительных сведений найдена фраза «Приложение оболочки запросило отмену» в расположении с такой же меткой времени, как у строк в файле setuperr.log. Это подтверждает наши подозрение, что этот файл — причина сбоя обновления:
setupact.log content:
setupapi.dev.log content :
Этот анализ показывает, что ошибку обновления Windows можно устранить, удалив файл C:\ProgramData\Microsoft\Crypto\RSA\S-1-5-18\ [CN].
В этом примере полное, ненавязаное имя файла: C:\ProgramData\Microsoft\Crypto\RSA\S-1-5-18\be8228fb2d3cb6c6b0ccd9ad51b320b4_a43d512c-69f2-42de-aef9-7a88fabdaa3f.
Как узнать кто установил программу и когда
И так у меня есть тестовый сервер с операционной системой Windows Server 2019 и я на него в качестве демонстрации буду устанавливать Microdoft Edge Chromium, FireFox Mozilla, а так же LogParser. Все события, что генерируются в операционной системе Windows появляются в просмотре событий, это лог файлы разбитые по журналам.
Открываем логи Windows, журнал "Приложение (Application)" или "Система (System)", все зависит от инсталлятора которым собран пакет, так как есть те, что используют метод MsiInstaller , но есть и другие. Теперь запускаем инсталлятор LogParser. После установки я открываю журнал "Приложение", где я вижу ряд событий,
первое это событие с ID 1040 покажет вам начало установки программы:
Событие ID 1040: Начало транзакции установщика Windows: C:\Users\Администратор.ROOT\Desktop\LogParser.msi. ИД клиентского процесса: 3076.
Далее вы увидите событие, где заканчивается установка программы ID 1042
Окончание транзакции установщика Windows: C:\Users\Администратор.ROOT\Desktop\LogParser.msi. ИД клиентского процесса: 3076.
Завершается сеанс событием с кодом ID 10001
И заканчивается установка программы событием с кодом ID 11707
Иногда вы можете увидеть событие с ID 1033.
Установщик Windows выполнил установку продукта. Продукт: Log Parser 2.2. Версия: 2.2.10. Язык: 1033. Изготовитель: Microsoft Corporation. Установка завершена с состоянием: 0.
Если вы внимательны, то можете обратить внимание, что источником событий тут выступает MsiInstaller. Зная это вы легко можете произвести фильтрацию. Для этого в правой части найдите пункт "Фильтр текущего журнала"
В источниках событий выберите из выпадающего списка пункт MsiInstaller.
В итоге у меня получилось вот так.
Теперь когда события отфильтрованы по источнику MsiInstaller, вам будет еще легче найти кто установил, что установил и когда. В моем примере это сделал ROOT\Администратор.
Причина, по которой мой пользователь показывает SYSTEM, заключается в том, что я являюсь единственным пользователем системы и не создал независимых учетных записей пользователей при установке Windows 10.
Так же событие 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
Событие ID 7045: В системе установлена служба. Имя службы: Служба "Обновление Microsoft Edge" (edgeupdatem)
Имя файла службы: "C:\Program Files (x86)\Microsoft\EdgeUpdate\MicrosoftEdgeUpdate.exe" /medsvc
Тип службы: служба режима пользователя
Тип запуска службы: Вручную
Учетная запись службы: LocalSystem
Как узнать кто удалил программу с сервера или компьютера
По аналогии с установкой, процесс деинсталляции или как его еще называют удаление, генерирует свои события в журналах Windows. Если мы говорим, про источник MsiInstaller из журнала "Приложение (Application)", то нам нужно фильтровать события по ID 11724 и ID 1034.
Событие с кодом ID 1033: Установщик Windows выполнил удаление продукта. Продукт: Log Parser 2.2. Версия: 2.2.10. Язык: 1033. Изготовитель: Microsoft Corporation. Удаление завершено с состоянием: 0.
Так же вы можете спокойно использовать описанный выше скрипт и команду PowerShell, для автоматизации оповещения, о удалении программы.
Дополнительно
Хочу отметить, что существует ряд платных программ которые специализируются на аудите событий в Windows системах, например netwrix и им подобные, где вы так же легко сможете получать всю информацию, о том кто и когда установил программу, или кто и когда ее удалил.
В этой статье описывается, где найти эти файлы журнала и какие файлы журналов наиболее полезны для устранения неполадок на каждом этапе установки Windows 7, Windows Server 2008 R2 и Windows Vista.
Применимо к следующим выпускам: Windows 10 – все выпуски, Windows Server 2019, Windows Server 2016
Исходный номер КБ: 927521
Введение
Windows файлы журнала установки находятся в разных расположениях на жестком диске. Эти расположения зависят от этапа установки.
Поддержка Windows Vista без установленных пакетов служб завершилась 13 апреля 2010 г. Чтобы продолжить получать обновления безопасности для Windows, убедитесь, что вы Windows Vista с Пакет обновления 2 (SP2). Дополнительные сведения см. в Windows поддержки XP.
Этап down-level
Этап downlevel — это этап Windows установки, запущенный в предыдущей операционной системе. В следующей таблице перечислены важные файлы журналов на этом этапе установки.
Windows фазы среды предварительной реализации
Этап Windows среды предварительной настройки (Windows PE или WinPE) — это фаза установки Windows, которая происходит после перезагрузки в конце этапа downlevel или при запуске компьютера с помощью средства установки Windows. В следующей таблице перечислены важные файлы журналов на этом этапе установки.
Файл журнала | Описание |
---|---|
X:$WINDOWS.~BT\Sources\Panther\setupact.log | Содержит сведения о действиях установки во время установки. |
X:$WINDOWS.~BT\Sources\Panther\setuperr.log | Содержит сведения об ошибках установки во время установки. |
X:$WINDOWS.~BT\Sources\Panther\miglog.xml | Содержит сведения о структуре каталога пользователей. Эта информация включает идентификаторы безопасности (SID). |
X:$WINDOWS.~BT\Sources\Panther\PreGatherPnPList.log | Содержит сведения о начальном захвате устройств, которые находятся в системе на этапе downlevel. |
или | |
C:$WINDOWS.~BT\Sources\Panther\setupact.log | Содержит сведения о действиях установки во время установки. |
C:$WINDOWS.~BT\Sources\Panther\setuperr.log | Содержит сведения об ошибках установки во время установки. |
C:$WINDOWS.~BT\Sources\Panther\miglog.xml | Содержит сведения о структуре каталога пользователей. Эта информация включает идентификаторы безопасности (SID). |
C:$WINDOWS.~BT\Sources\Panther\PreGatherPnPList.log | Содержит сведения о начальном захвате устройств, которые находятся в системе на этапе downlevel. |
Вы также можете увидеть файл журнала в X:\WINDOWS каталоге. Файл Setupact.log в этом каталоге содержит сведения о ходе выполнения начальных параметров, выбранных на экране Windows установки. Экран Windows появляется при запуске компьютера с помощью Windows установки. После выбора Установки теперь с Windows на экране установки запускается Setup.exe, и этот файл журнала больше не используется.
Этап конфигурации в Интернете
Подождите минутку, Windows приступить к первому запуску.
На этом этапе устанавливается базовая поддержка оборудования. Если это установка обновления, данные и программы также переносят. В следующей таблице перечислены важные файлы журналов на этом этапе установки.
Файл журнала | Описание |
---|---|
C:\WINDOWS\PANTHER\setupact.log | Содержит сведения о действиях установки во время установки. |
C:\WINDOWS\PANTHER\setuperr.log | Содержит сведения об ошибках установки во время установки. |
C:\WINDOWS\PANTHER\miglog.xml | Содержит сведения о структуре каталога пользователей. Эта информация включает идентификаторы безопасности (SID). |
C:\WINDOWS\INF\setupapi.dev.log | Содержит сведения о устройствах Plug и Play и установке драйвера. |
C:\WINDOWS\INF\setupapi.app.log | Содержит сведения об установке приложений. |
C:\WINDOWS\Panther\PostGatherPnPList.log | Содержит сведения о захвате устройств, которые находятся в системе после этапа конфигурации в Интернете. |
C:\WINDOWS\Panther\PreGatherPnPList.log | Содержит сведения о начальном захвате устройств, которые находятся в системе на этапе downlevel. |
Windows Фаза приветствия
Этап Windows Welcome включает в себя следующие параметры и события:
- Он предоставляет параметры для создания учетных записей пользователей.
- Он предоставляет возможность указать имя компьютера.
- Средство Windows системной оценки (Winsat.exe) завершает тестирование производительности для определения Windows индекса опыта.
Этап Windows является завершаемой фазой установки перед тем, как пользователь войт. В следующей таблице перечислены важные файлы журналов на этом этапе установки.
Файл журнала | Описание |
---|---|
C:\WINDOWS\PANTHER\setupact.log | Содержит сведения о действиях установки во время установки. |
C:\WINDOWS\PANTHER\setuperr.log | Содержит сведения об ошибках установки во время установки. |
C:\WINDOWS\PANTHER\miglog.xml | Содержит сведения о структуре каталога пользователей. Эта информация включает идентификаторы безопасности (SID). |
C:\WINDOWS\INF\setupapi.dev.log | Содержит сведения о устройствах Plug и Play и установке драйвера. |
C:\WINDOWS\INF\setupapi.app.log | Содержит сведения об установке приложений. |
C:\WINDOWS\Panther\PostGatherPnPList.log | Содержит сведения о захвате устройств, которые находятся в системе после этапа конфигурации в Интернете. |
C:\WINDOWS\Panther\PreGatherPnPList.log | Содержит сведения о начальном захвате устройств, которые находятся в системе на этапе downlevel. |
C:\WINDOWS\Performance\Winsat\winsat.log | Содержит сведения о результатах тестирования производительности Windows system Assessment Tool. |
Этап отката
Если установка Windows сбой, и вы успешно откатили установку на предыдущий рабочий стол операционной системы, существует несколько файлов журнала, которые можно использовать для устранения неполадок. В следующей таблице перечислены важные файлы журналов на этом этапе.
программа установки Windows создает файлы журналов для всех действий, происходящих во время установки. если возникли проблемы при установке Windows, проверьте файлы журнала, чтобы помочь в устранении неполадок при установке.
Журнал местоположений
программа установки Windows файлы журнала доступны в следующих каталогах:
X:\ Windows \пансер\
Расположение журнала перед тем, как программа установки сможет получить доступ к диску.
Расположение журнала действий установки после настройки диска.
используется для регистрации Plug and Play установки устройств.
Расположение дампа памяти при проверке наличия ошибок.
Расположение дампов журнала для проверок ошибок.
Расположение журналов Sysprep.
программа установки Windows журналов событий
программа установки Windows включает возможность просмотра событий производительности программа установки Windows в Windows средства просмотра журналов событий. это позволяет упростить проверку действий, произошедших во время программа установки Windows, а также просматривать статистику производительности для различных частей программа установки Windows. Можно отфильтровать журнал так, чтобы просмотреть только нужные элементы. программа установки Windows события производительности сохраняются в файл журнала с именем Setup. etl, который доступен в каталоге %виндир%\пансер всех установок.
для просмотра журналов необходимо использовать Просмотр событий, поставляемые с носителем Windows, который соответствует версии создаваемого образа.
чтобы просмотреть журналы на компьютере, который не содержит соответствующий набор, необходимо запустить сценарий из корневого каталога носителя, который устанавливает трассировку событий для поставщика Windows (ETW). В командной строке введите:
где D — буква диска Windows DVD-носителя.
просмотр журналов событий программа установки Windows
- запустите Просмотр событий, разверните узел журналы Windows и выберите пункт система.
- На панели действия щелкните Открыть сохраненный журнал , а затем найдите файл Setup. ETL. По умолчанию этот файл доступен в каталоге%Виндир%\пансер.
- содержимое файла журнала отображается в Просмотр событий.
Экспорт журнала в файл
В командной строке используйте команды wevtutil или Tracerpt , чтобы сохранить журнал в .xml или текстовом файле. Сведения об использовании этих средств см. в справке командной строки. Следующие команды показывают примеры использования средств:
04.04.2022
itpro
PowerShell, Windows 10, Windows Server 2019, Групповые политики
комментариев 5
В этой статье мы рассмотрим, как с помощью политик аудита Windows можно узнать какие программы запускались на компьютере. Довольно часто от администратора требуют предоставить информацию о том, какие приложения запускает пользователь, когда он запускал приложение в последний раз и т.д. Эту информацию можно собрать из журнала событий Windows и преобразовать в удобный отчет с помощью PowerShell.
Сначала нужно включить политику аудита запуска/остановки процессов в Windows.
Если вы хотите включить политику аудита процессов на компьютерах в домене Active Directory, нужно использовать редактор доменных GPO – gpmc.msc .
Мы показывали, как использовать эти события аудита для поиска источника блокировки учетной записи на компьютере.
Откройте Event Viewer ( eventvwr.msc ) и разверните раздел Windows Logs -> Security. Теперь при запуске любой программы (процесса) в этом журнале событий появляется событие Process Creation с EventID 4688.
В информации о событии указан пользователь, запустивший программу ( Creator Subject ), имя исполняемого файла процесса ( New Process Name ) и родительский процесс, из которого было запущено приложение ( Creator Process Name ).
Событие завершения процесса (A process has exited) имеет EventID 4689. Ранее мы показывали как с помощью этих события и триггера планировщика можно выполнить скрипт (действие) при запуске/завершении определённой программы в Windows.
Обратите внимание, что при включении рассмотренной выше политики Audit process tracking в журнал Security начинают сохранятся все события, связанные с процессами. Если вы хотите уменьшить число событий в Event Viewer и сохранять только информацию о событиях запуска, можно отключить данную политику и включить только расширенную политику аудита Audit Process Creation (Windows Settings -> Security Settings -> Advanced Audit Policy Configurations -> System Audit Policy -> Detailed Tracking).
Чтобы в события аудита записывалась информация о параметрах запуска процессов (аргументы, с которыми запускаются программы), включите также параметр GPO Include command line in process creation events в Computer Configuration -> Administrative Templates -> System -> Audit Process Creation.
После включения этой политики в аргументе Process Command Line видно, с каким аргументом запускался тот или иной процесс.
Не забудьте увеличить размер журнала Security со стандартных 20 Мб. Это позволит хранить история запуска приложения за более длительный период. Для этого откройте свойства журнала Security и увеличьте значение параметра Maximum log size.
Для анализа программ, запущенных пользователем можно использовать фильтры Event Viewer. Но это не очень удобно. Ниже я покажу несколько PowerShell скриптов который позволят вам получить удобные списки с историей запуска приложений пользователями.
$processhistory = @()
$today = get-date -DisplayHint date -UFormat %Y-%m-%d
$events=Get-WinEvent -FilterHashtable @LogName = 'Security'
starttime="$today"
ID = 4688
>
foreach ($event in $events)$proc = New-Object PSObject -Property @ProcessName=$event.Properties[5].Value
Time=$event.TimeCreated
CommandLine=$event.Properties[8].Value
User=$event.Properties[1].Value
ParentProcess=$event.Properties[13].Value
>
$processhistory += $proc
>
$processhistory| Out-GridView
Данный PowerShell скрипт выберет все события запуска программ за сегодняшний день и выведет список процессов, времени запуска и пользователях в графическую таблицу Out-GridView.
Полученный массив объектов можно использовать для выполнения различных запросов.
-
Найти всех пользователей, которые запускали определённое приложение:
$proc_name=”notepad++.exe”
$processhistory | where-object |out-gridview
Такие скрипты часто используем для анализа запуска программ пользователей на серверах RDS фермы.
Также история запуска программ в Windows ведется в файле %SystemRoot%\AppCompat\Programs\Amcache.hve. Файл заблокирован Windows и прочитать его можно только, загрузившись с LiveCD или загрузочного/установочного диска. В файле есть метки запуска, установки/удаления программы, контрольные суммы исполняемого файла (SHA1). Для преобразования этого бинарного файла в текстовый формат нужно использовать сторонние утилиты (например, regripper).
Читайте также: