Fix | UAC: Это приложение заблокировано в целях защиты — mmc. exe
Я тестировал откат к точке восстановления в Windows 10 20H1 Release Preview и внезапно напоролся на вынесенную в заголовок проблему. Сегодня я расскажу о ее диагностике и покажу решение.
Занятно, что неделей ранее мы ковыряли такую же ситуацию в чате инсайдеров, но к решению не пришли. Видимо, когда сам сталкиваешься с проблемой, какие-то косвенные признаки помогают или просто приходят в голову другие идеи
👉 Описанное в статье решение применимо к специфической ситуации и может не помочь в вашем случае, даже если все симптомы совпадают. При таком раскладе просто переустановите ОС поверх с сохранением настроек и программ.
[+] Сегодня в программе
Описание проблемы
Контроль учетных записей блокирует запуск оснасток MMC (диспетчер устройств, журнал событий, службы и т. д.) сообщением:
Это приложение заблокировано в целях защиты. Администратор заблокировал выполнение этого приложения. За дополнительными сведениями обратитесь к администратору.
This app has been blocked for your protection. An administrator has blocked you from running this app. For more information, contact the administrator.
Эта ошибка не связана с заблокированными файлами!
Аналогичное сообщение может появляться при запуске исполняемых файлов, загруженных из интернета. В этом случае проблема решается легко – надо разблокировать файл в его свойствах или из PowerShell. Об этом я рассказывал в рамках статьи об альтернативных потоках данных NTFS.
В сети много однотипных статей, советующих стандартный набор: разблокировку файла, отключение SmartScreen, добавление файла в исключения антивируса и т. д., но они все мимо.
Диагностика
Обратите внимание на строку Издатель: Нет данных в диалоге UAC. Система по какой-то причине не может проверить издателя приложения и блокирует запуск.
Отсутствие издателя
На самом деле в диалоге UAC это наблюдается не только у mmc. exe, но и у множества исполняемых файлов Windows. В этом можно убедиться, например, запустив командную строку от имени администратора. А можно в Process Explorer добавить столбец Verified Signer и увидеть страшную картину.
UAC блокирует почему-то только оснастки MMC. Впрочем, иначе было бы еще хуже
Служба криптографии
За проверку издателя отвечает служба криптографии. В чате мы безуспешно тыкали вокруг нее пальцем в небо, а в своей ОС я обратил внимание, что служба грузит ЦП на 15-20%.
Монитор ресурсов показал постоянную запись 80-90кб/сек в $LogFile, но причины такого поведения оставались неясными.
Это навело меня на мысль сделать проверку диска, и она даже что-то исправила, но не насущную проблему. Для очистки совести я прогнал DISM и SFC, а также удалил последнее обновление, но эти способы ожидаемо не помогли.
Журнал событий
Вообще, с этого можно было начинать, но иногда я забываю даже про такие основы диагностики, как безопасный режим
В журнале приложений обнаружились тысячи свежих ошибок CAPI2 и десятки тысяч предупреждений ESENT! Модуль КриптоПРО тоже отметился в качестве пострадавшего.
В частности, регистрировались приведенные ниже ошибки.
Event 256 — CAPI2
Event 642 — ESENT
Catalog Database (16656, D,50) Catalog Database: Не удается использовать версию функции формата базы данных 9180 (0 x23 dc), так как в качестве текущего используется формат базы данных 1568.20.0, и он определяется параметром 0 x410022 D8 (8920 | JET_ efvAllowHigherPersistedFormat).
Catalog Database (16656,D,50) Catalog Database: The database format feature version 9180 (0x23dc) could not be used due to the current database format 1568.20.0, controlled by the parameter 0x410022D8 (8920 | JET_efvAllowHigherPersistedFormat).
Catalog Database
Стало намного теплее! Catalog Database – это файл базы данных криптографических хэшей. В папке System32 есть две подпапки – catroot и catroot2. В первой данные о пакетах драйверов, а во второй – о системных файлах.
Я попробовал остановить службу криптографии и починить системную базу данных каталогов с помощью входящей в ОС утилиты esentutl:
Это не помогло, но оставалось еще кардинальное средство.
Решение
Решение заключается в пересоздании системной базы данных каталогов. В PowerShell от имени администратора:
Первая команда останавливает службу криптографии, вторая переименовывает папку catroot2, а третья перезагружает систему (в моем случае перезапуска службы оказалось недостаточно).
После перезагрузки папка catroot2 создалась заново, и все наладилось! Любопытно, что у товарища в чате система сама исправила проблему спустя четыре дня после появления.
Однако мне не удалось выяснить, что именно проделала ОС для самовосстановления. Равно как осталось загадкой, что вызвало сбой на вполне свежей установке Release Preview.
Заключение
Даже неопытный пользователь легко решит такую проблему переустановкой ОС поверх без всякой диагностики. Однако это проблематично на инсайдерских сборках, в т. ч. на этапе Release Preview, потому что нет дистрибутива!
Для быстрого и медленного колец ISO выпускаются не слишком часто, а в случае с Release Preview нужно ждать общей доступности грядущей версии. Поскольку легкого пути решения проблем нет, приходится обращаться за поддержкой или разбираться самостоятельно.
Об авторе
Вас также может заинтересовать:
Я в Telegram
Подпишитесь на канал и читайте интересные записи чаще! Есть вопросы? Задайте их в чате.
комментариев 29
Утром столкнулся с такой проблемой на ltsc. (нельзя запустить редактор групповых политик и открыть диспетчер устройств — сообщение как на скриншоте, до этого все работало) Исправил в реестре параметр EnableLUA на 0. Проблема исчезла… Хоть это и не правильно.
Ваша оценка: 0
Очевидно, что отключение UAC избавляет от блокировки. Но это не решение и даже далеко не лучший обходной путь. Но теперь вы можете проверить мой вариант решения.
Ваша оценка: 0
Yaromax
За отключение UAC в современных системах — пожизненный эцих с гвоздями (© Кин-Дза-Дза).
Ваша оценка: 0
Постараюсь завтра проверить. Логично, что отключение UAC, — это не решение, а временная мера.
Ваша оценка: 0
«Фараону помогло». Спасибо за совет! Проблема действительно была в этом.
Ваша оценка: +1
Ваша оценка: 0
скорее всего, что в обновлении, которое вы откатили были изменения в структуре этой базы. а функции изменения структуры базы допиливаются (конвертации типов, добавление столбцов и др масштабные изменения) вручную и обычно их пилят только в сторону повышения. эти функции автоматически срабатывают при обновлении, когда запускается служба и видит базу с версией меньше, чем она поддерживает.
а в вашем случае служба увидела базу с версией выше, чем она поддерживает и отказывается работать, потому что просто не знает как с ней работать.
тут дело даже не в конкретной службе, это могло произойти где угодно. и если служба критичная то ос перестает загружаться
Ваша оценка: 0
Версия насчёт обновления похожа на правду — проблемы начались после него (хотя «после» не значит «вследствие»).
Но непонятно, почему без отката обновления всё само починилось спустя некоторое время.
Ваша оценка: 0
Трудно сказать, была ли причина в обновлении. Это было KB4558244 (в базе знаний этих статей нет, ибо превью). Это добавка к предварительному же накопительному обновлению KB4550936.
Вчера был второй вторник, соответственно обновление полетело в массы. И если причина в нем и она не исправлена и применима к 1909 и ниже, то мы увидим много проблем… У меня однако финальная версия накопительного обновления для RP проблему не создала.
Ваша теория понятна, но она не вполне объясняет, почему все починилось после пересоздания каталога, равно как без отката обновления.
Ваша оценка: 0
Почитал описание KB4550936 внимательнее — да, обновляли Microsoft JET Database Engine. Видимо с этим и связано.
Ваша оценка: 0
Ну да, только дело не в обновлении, а в откате обновления. Проблема же началась после отката обновления?
Ваша оценка: 0
Ваша оценка: 0
Ваша теория понятна, но она не вполне объясняет, почему все починилось после пересоздания каталога, равно как без отката обновления.
Эта теория все объясняет:
— после обновления у вас все нормально, так как база успешно обновилась (обработчики обновления сработали верно)
— проблема появилась вследствие отката обновления, то есть отката версии компонента (обработчиков отката обычно не пишут)
— пересоздание каталога помогло тем, что эта база создалась заново автоматически, через старую версию компонента и при обновлении она опять обновится до новой. то есть эта «проблема» вполне воспроизводима, если после обновления второй раз вы захотите откатиться.
это просто достаточно частный случай, в данный момент со службой проверки сертификатов, а вообще это могло произойти с любым другим компонентом, в котором не пишут обработчиков отката
Ваша оценка: 0
Mark Smirnov: — проблема появилась вследствие отката обновления, то есть отката версии компонента (обработчиков отката обычно не пишут)
Мы не откатывали обновления до появления проблемы. Я после возникновения проблемы откатил только KB4558244, но не KB4550936, которое предположительно первым внесло изменения в движок Jet.
Да, у меня проблема возникла после отката на точку восстановления. Но она была майской, а оба обновления — апрельскими.
Алексей вообще не делал откат ни того, ни другого.
Ваша оценка: 0
Алексей
Установил уже кучу 10-ток, оригинальных, в том числе и LTSC, всегда сразу отключаю UAC и обновления, и таких проблем не наблюдаю, неужели Вам эти обновления так важны?
Ваша оценка: 0
Мне обновления крайне важны, я не хожу с голой задницей по улице и в интернете. Равно как я хочу знать и контролировать, какие приложения у меня работают с правами администратора.
Под каждой из них есть ссылки на связанные статьи. Приятного чтения!
Ваша оценка: +1
Алексей Аркадьев:
Версия насчёт обновления похожа на правду — проблемы начались после него (хотя «после» не значит «вследствие»).
Но непонятно, почему без отката обновления всё само починилось спустя некоторое время.
Эта проблема возникает не вследствие обновления, а вследствие отката обновления, когда новая версия компонента уже успел обновить версию базы, а старая не умеет работать с новой версией.
Ваша оценка: 0
Да, но у меня не было отката обновления!
Mark Smirnov: Эта проблема возникает не вследствие обновления, а вследствие отката обновления, когда новая версия компонента уже успел обновить версию базы, а старая не умеет работать с новой версией.
Ваша оценка: 0
да в общем-то и без «mmc» можно.
Ваша оценка: 0
После обновления с 1909 на 2004 (чистый образ msdn) появилась эта проблема.
К сожалению пересоздание системной базы данных каталогов не помогло!
Каталог переименовывается в catroot2.old, после перезагрузки создаётся новый catroot2 и проблема остаётся!
Ваша оценка: 0
Вопрос обсуждается здесь https://forum. oszone. net/thread-342986.html
Возможно, вы и подняли эту тему.
Ваша оценка: 0
Точно такая же проблема, решения пока видимо нету.
Ваша оценка: 0
Пишите в тему все подробности об ОС и своих действиях.
Ваша оценка: 0
Все то же самое. Приведенное решение не помогло.
Есть еще идеи?
Ваша оценка: 0
Ваша оценка: 0
Не помогло. Все так же.
Ваша оценка: 0
Переустановите поверх (последняя ссылка в статье), версия 20H1 уже доступна
Ваша оценка: +1
Сделал. Все исправилось.
Но так и не понял, что это было.
Да и зачем нужна диагностика, когда все решает переустановка.
Ваша оценка: 0
Angelin Dobrodnov: Да и зачем нужна диагностика, когда все решает переустановка.
В статье написано же
Однако это проблематично на инсайдерских сборках, в т. ч. на этапе Release Preview, потому что нет дистрибутива!
Ваша оценка: 0
https://www. outsidethebox. ms/20421/