- Завершение транзакции установщика windows
- Как узнать кто установил программу и когда
- Автоматизация оповещения по событиям 11707
- Как найти события установки программ не методом MsiInstaller
- Как узнать кто удалил программу с сервера или компьютера
- Дополнительно
- Способы решения: ошибка 1603 при установке программ в Windows
- Завершение транзакции установщика windows
Завершение транзакции установщика 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 и им подобные, где вы так же легко сможете получать всю информацию, о том кто и когда установил программу, или кто и когда ее удалил.
Способы решения: ошибка 1603 при установке программ в Windows
Ошибка 1603 возникает при установке многих программ, ниже несколько способов ее решения.
Общее решение ошибки 1603 для всех случаев, его следует проделать в первую очередь и если не помогло тогда использовать конкретное решение для Вашей программы. Загрузите и запустите мастер исправления ошибки 1603, следуйте подсказкам. Так же можно проделать следующее:
1. Удалить программу вручную из панели управления
2. Вручную удалить записи содержащие название программы из реестра
Если исправить ошибку не удалось — ищите ниже в списке свою программу и возможные решения.
Ошибка 1603. Обновление Java не завершено
Решение: Полностью удалите все версии Java, как это сделать смотрите — тут
Ошибка установщика Google Earth 1603
Ошибка 1603 при установке Skype (Skype: сбой; код 1603. Критическая внутренняя ошибка во время установки.)
Решение: Полностью удалите Skype с компьютера, затем используйте мастер исправления ошибки 1603
Ошибка 1603 при установке драйверов на принтеры HP
Решение: выполните рекомендации из этой инструкции
Ошибка при установке Рaint.NET 1603
Решение: Удалите старую версию программами типа Revo Uninstaller или CCleaner, если не помогает сделайте резервную копию реестра и вручную поиском найдите и удалите записи содержащие «Paint.NET».
Если Вашей программы нет в списке используйте общее решение ниже или — пишите в комментарии постараюсь добавить.
Универсальное решение ошибки «Ошибка 1603: Во время установки произошла неустранимая ошибка.»
Основные причины ошибки 1603 в том что установщик не может получить доступ к нужной папке или реже ветке реестра:
- Установщик Windows пытается установить приложение, которое уже установлено на вашем Компьютере.
- Папка, в которую вы пытаетесь установить пакет установщика Windows, зашифрована.
- Диск, содержащий папку, в которую вы пытаетесь установить пакет установщика Windows является съемным носителем.
- Учетная запись SYSTEM не имеет разрешения на полный доступ к папке, в которую вы пытаетесь установить пакет установщика Windows.
- Проверьте что приложение отсутствует в списке установленных, «Панель управления -> Программы и компоненты»
- Установите приложение в не зашифрованную папку, совет актуален для тех кто использует Bitlocker, TrueCrypt, PGP и аналогичные программы
- Тут всё просто — укажите другой диск для установки
- Предоставьте полный доступ учетной записи SYSTEM (в русской версии — система).
Чтобы предоставить полный доступ учетной записи SYSTEM, выполните следующие действия.
- Открыть обозреватель файлов (или проводника Windows), щелкните правой кнопкой мыши диск, на котором требуется установить пакет установщика Windows и нажмите кнопку Свойства.
- На вкладке Безопасность убедитесь, что поле имена групп или пользователей содержит учетную запись пользователя системы. Если учетная запись SYSTEM/система не отображается в списке, выполните следующие действия для добавления системной учетной записи.
- Нажмите кнопку Изменить . Если будет предложено, утверждение контроль учетных записей пользователей.
- Нажмите кнопку Добавить . Откроется диалоговое окно Выбор пользователей или групп .
- В поле «Введите имена выбираемых объектов» введите система и нажмите кнопку проверка имен.
- Нажмите OK.
- Чтобы изменить разрешения, нажмите кнопку Изменить . Если будет предложено, утверждение контроль учетных записей пользователей.
- Выберите учетную запись пользователя SYSTEM и убедитесь, что в разделе Разрешения задано Разрешить для Полный доступ . Если нет, установите флажок « Разрешить ».
- Закрыть диалоговое окно разрешений и вернуться в диалоговое окно Свойства . Нажмите кнопку Дополнительно .
- Выберите Изменить разрешения . Если будет предложено, утверждение контроль учетных записей пользователей.
- На вкладке « разрешения » выберите параметр « Система » и нажмите кнопку Изменить
- Щелкните раскрывающийся список Применимо к и выберите Для этой папки, вложенной папки и файлов . Нажмите кнопку ОК.
- Подождите, пока операционная система применит разрешения, которые были выбраны для всех дочерних папок.
- Повторите установку приложения, более наглядно процесс изменения разрешения ниже в картинках:
Если проблема не решилась — пишите в комментарии.
Завершение транзакции установщика windows
Сообщения: 51909
Благодарности: 14931
Конфигурация компьютера |
Материнская плата: ASUS P8Z77-V LE PLUS |
HDD: Samsung SSD 850 PRO 256 Гб, WD Green WD20EZRX 2 Тб |
Звук: Realtek ALC889 HD Audio |
CD/DVD: ASUS DRW-24B5ST |
ОС: Windows 8.1 Pro x64 |
Прочее: корпус: Fractal Design Define R4 |
Профиль | Отправить PM | Цитировать