Примечание. Это репост исходного сообщения на StackOverflow. Меня направил сюда полезный пользователь, и я просто делаю репост.
Я впервые создал учетную запись StackOverflow из-за этой раздражающей проблемы. Я устранял уязвимости на виртуальной машине Test PC на своей текущей работе, чтобы протестировать некоторые новые процедуры, и одна из уязвимостей связана с предустановленным приложением «Paint3D» (В частности QID 91774 для интересующихся). Короче говоря, уязвимость была просто «устаревшей версией приложения». После обновления Paint3D до новейшей версии и подтверждения этого с помощью Powershell я заметил, что наше программное обеспечение для управления уязвимостями продолжает определять Paint3D как устаревшую версию. Уязвимость была обнаружена путем запроса объекта WMI «WIN32_InstalledStoreProgram», например:
фрагмент метода "Логика обнаружения угроз" Увидев, что эта уязвимость все еще существует даже после обновления до последней версии, я просто удалил Paint3D через меню «Настройки»> «Приложения».
Когда я запросил тот же объект WMI вручную, используя команды Powershell «Get-WmiObject Win32_InstalledStoreProgram» и «Get-WmiObject Win32_InstalledStoreProgram | Format-List -Property Name, Version», я заметил, что для приложения, которое я удалил, было 2 записи (Microsoft.MSPaint). Одна была старой версией, с которой я обновился, другая была новой версией, до которой я обновился. Оба были удалены и подтверждены для удаления. Я удалил отдельное приложение (Погода), чтобы увидеть, не обновляется ли объект WMI автоматически, но после удаления и подтверждения с помощью приведенных выше команд Powershell было подтверждено, что приложение «Погода» удалено и удалено как запись в объекте WMI, а остались две разные версии Microsoft.MSPaint. Я также удалил обычную версию «Paint» на случай, если проблема была в ней, но две записи остались.
Теперь о сложной части. Магазин Microsoft выдает разные сообщения об ошибках каждый раз, когда я пытаюсь установить Paint3D. Я полагаю, что это связано с тем, что MS Store также запрашивает один и тот же объект WMI и, видя, что у меня есть две «версии» «Paint3D», не может ничего установить. Я в своем уме с этой крошечной проблемой. Исправление, которое я планирую внедрить, — это просто очистка этой виртуальной машины и продолжение процедур устранения уязвимостей, но я действительно хочу понять, почему это происходит и что может быть причиной этой проблемы. Я прочитал некоторую документацию о ручном редактировании и обновлении объектов WMI, однако я недостаточно знаю о WMI или объектах WMI, чтобы быть уверенным и эффективным. Это такая простая задача: обновить или удалить Paint3D. Я просто понятия не имел, что столкнусь с этим, и хотел бы хотя бы понять, что происходит.
Фрагмент объекта WMI, показывающий устаревшую версию MSPaint
Фрагмент объекта WMI, показывающий текущую версию MSPaint, однако Paint3D полностью удален
Редактировать 1, 00:20 01.09.2021: В качестве дополнения я попытался удалить своего пользователя AD из системы и получить чистый вход в систему, но Paint3D все еще был удален, а Microsoft Store по-прежнему не работал. Эта проблема характерна только для этого конкретного рабочего стола.