Ошибка ID 513 CAPI2, решаем за минуту
Добрый день! Уважаемые читатели и гости одного из крупнейших IT порталов Pyatilistnik.org. В прошлый раз мы с вами успешно устраняли ошибки на сервере и одной из самых распространенных была ID 10016, которая есть практически на любом компьютере. Сегодня я хочу пополнить мою коллекцию решений по ошибкам Windows и мы разберем вот такую "ID 513 CAPI2 -Cryptographic Services failed while processing the OnIdentity() call in the System Writer Object". Мы рассмотрим на сколько она критичная для системы, посмотрим ее источник зарождения и сделаем логи еще чище и красивее.
Описание и причины ошибки ID 513
Делая ревизию серверов на базе Windows Server 2019, я обнаружил ошибку, ее содержимое было вот таким:
Найти все это можно в журнале "Приложения (Application)".
Если обратиться по данной ошибке на Microsoft, то там дано вот такое пояснение причины:
Во время резервного копирования процесс VSS, запущенный под учетной записью NETWORK\SERVICE, вызывает cryptcatsvc!CSystemWriter::AddLegacyDriverFiles(), который перечисляет все записи драйверов в базе данных Service Control Manager и пытается открыть каждую из них. Функция не имеет прав на запись драйвера Microsoft Link-Layer Discovery Protocol (Mslldp.dll) и падает с ошибкой "Доступ запрещен". Оказалось, что разрешения безопасности драйвера MSLLDP не позволяют NETWORK\SERVICE получить доступ к записи драйвера.
Как устранить ошибку ID 513 CAPI2
Логично предположить, что нам нужно добавить прав, в этом нам с вами помогут две утилиты sc и accesschk64. Для начала давайте проверим. что не хватает прав у учетной записи NT AUTHORITY\SERVICE, для этого вам нужно скачать утилиту accesschk64, которая входит в состав пакета Sysinternals. Для начала мы с помощью данной утилиты посмотрим текущие разрешения для двух библиотек и сравним их:
- mslldp
- mup
Для этого нам потребуется запустить командную строку из папки, где у вас лежит утилита accesschk64 и выполнить вот такие команды:
accesschk64 -c mup
Как можете заметить тут разница состоит в том, что у библиотеки mup , учетная запись NT AUTHORITY\SERVICE имеет права на чтение (R), именно их нам и нужно добавить для mslldp.
Следующим шагом нам нужно внести изменения в список доступа на библиотеке mslldp. Для этого нам нужно воспользоваться утилитой SC и посмотреть правильное значение. Находясь в командной строке введите команду:
Я выделил желтым значение (A;;CCLCSWLOCRRC;;;SU) именно оно и дает права чтения для NT AUTHORITY\SERVICE. Убедитесь, что в библиотеке mslldp, данное значение отсутствует:
Далее нам нужно добавить значение (A;;CCLCSWLOCRRC;;;SU) в список доступа, для этого скопируйте всю строчку с выводом для библиотеки mslldp и добавьте в самом конце недостающее значение. После чего выполните команду:
Теперь снова проверим права на доступ к библиотекеmslldp.dll
Как видно на представленном скриншоте ниже, у нас успешно добавилась учетная запись NT AUTHORITY\SERVICE. Теперь ваши логи Windows (Журналы событий), не будут забиты ошибкой "ID 513 CAPI2 - Cryptographic Services failed while processing the OnIdentity() call in the System Writer Object. Details: AddLegacyDriverFiles: Unable to back up image of binary Microsoft Link-Layer Discovery Protocol. System Error: Access is denied". Чем меньше красноты тем лучше, кстати легко отслеживать ошибки Windows вы можете через Windows Admin Center, поверьте очень удобно.
На этом у меня все, если у вас остались вопросы или пожелания, то я ожидаю их в комментариях. С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.