Обновлено 13.08.2020
Добрый день! Уважаемые читатели и гости одного из крупнейших 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, я обнаружил ошибку, ее содержимое было вот таким:
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.
Найти все это можно в журнале «Приложения (Application)».
Если обратиться по данной ошибке на Microsoft, то там дано вот такое пояснение причины:
Эта проблема возникает во время запуска резервного копирования системы, использующего VSS. Это часто приводит к зависанию процесса резервного копирования на длительный период времени или сбою.
Во время резервного копирования процесс VSS, запущенный под учетной записью NETWORKSERVICE, вызывает cryptcatsvc!CSystemWriter::AddLegacyDriverFiles(), который перечисляет все записи драйверов в базе данных Service Control Manager и пытается открыть каждую из них. Функция не имеет прав на запись драйвера Microsoft Link-Layer Discovery Protocol (Mslldp.dll) и падает с ошибкой «Доступ запрещен». Оказалось, что разрешения безопасности драйвера MSLLDP не позволяют NETWORKSERVICE получить доступ к записи драйвера.
Как устранить ошибку ID 513 CAPI2
Логично предположить, что нам нужно добавить прав, в этом нам с вами помогут две утилиты sc и accesschk64. Для начала давайте проверим. что не хватает прав у учетной записи NT AUTHORITYSERVICE, для этого вам нужно скачать утилиту accesschk64, которая входит в состав пакета Sysinternals. Для начала мы с помощью данной утилиты посмотрим текущие разрешения для двух библиотек и сравним их:
- mslldp
- mup
Для этого нам потребуется запустить командную строку из папки, где у вас лежит утилита accesschk64 и выполнить вот такие команды:
accesschk64 -c mslldp
accesschk64 -c mup
Как можете заметить тут разница состоит в том, что у библиотеки mup , учетная запись NT AUTHORITYSERVICE имеет права на чтение (R), именно их нам и нужно добавить для mslldp.
Следующим шагом нам нужно внести изменения в список доступа на библиотеке mslldp. Для этого нам нужно воспользоваться утилитой SC и посмотреть правильное значение. Находясь в командной строке введите команду:
Я выделил желтым значение (A;;CCLCSWLOCRRC;;;SU) именно оно и дает права чтения для NT AUTHORITYSERVICE. Убедитесь, что в библиотеке mslldp, данное значение отсутствует:
Далее нам нужно добавить значение (A;;CCLCSWLOCRRC;;;SU) в список доступа, для этого скопируйте всю строчку с выводом для библиотеки mslldp и добавьте в самом конце недостающее значение. После чего выполните команду:
sc sdset MSLLDP D:(D;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BG)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY)(A;;CCDCLCSWRPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWRPWPDTLOCRRC;;;SO)(A;;LCRPWP;;;S-1-5-80-3141615172-2057878085-1754447212-2405740020-3916490453)(A;;CCLCSWLOCRRC;;;SU)
Теперь снова проверим права на доступ к библиотекеmslldp.dll
Как видно на представленном скриншоте ниже, у нас успешно добавилась учетная запись NT AUTHORITYSERVICE. Теперь ваши логи 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.
- Remove From My Forums
-
Общие обсуждения
-
На ОС Windows 2008 server в журнале событии обнаружены ошибки:
Ошибка выполнения служб криптографии при обработке вызова OnIdentity() в объекте «System Writer».
Details:
AddCoreCsiFiles : BeginFileEnumeration() failed.
System Error:
Отказано в доступе.
Подскажите пожалуйста что за ошибки и как с ними исправить.
Все ответы
-
При запуске какой программы/сервиса возникает эта ошибка? Мешает чему-то работать?
Сазонов Илья http://isazonov.wordpress.com/
-
Первоначальная установка ОС Windows server 2008 в списке компоненты добавил Windows PowerShell. Недавно удалил программу Windows PowerShell и эту ошибку больше не справшивала. Как исправить, если установить эту программу?
-
Здравствуйте,
— По логам видны сообщения VSS, у Вас настроен компонент Windows Backup Server?
— Выполните в командной строке вызов «vssadmin list writers» и просмотрите списке, если присутствует «SYSTEM WRITERS» в данном списке?
Best Regards, Andrei …
Microsoft Certified Professional-
Изменено
SQx
16 февраля 2015 г. 7:10
исправлено
-
Изменено
-
ошибку 513 (Сбой служб шифрования в ходе обработки вызова OnIdentity() в объекте «Системный модуль записи». Details:AddCoreCsiFiles : RtlConvertNtFilePathToWin32Path()
failed.)
Для определения её наличия открываем: Администрирование — Управление компьютером — Просмотр событий — Журналы Windows -Приложение
Если эта ошибка присутствует, то это легко решаемо. https://translate.google.ru/translate?hl=ru&sl=en&u=https://social.technet.microsoft.com/Forums/windows/en-US/14abbc90-cab5-4fc6-953a-96c1929f9a7b/eventid-513-capi2-error%3Fforum%3Ditprovistasp&prev=search
1. Предоставьте себе полный доступ к папке c:windowswinsxsFilemaps
2. Создайте где-нибудь пустой каталог, чтобы перенести файлы из Filemaps, для нахождения некорректного файла-пути. К примеру c:test
3. Переместите все файлы из c:windowswinsxsFilemaps в c:test (советую создать 2 резервные копии)
(Если вы выполните в CMD «vssadmin list writers», вы получите CAPI2 513 ошибку: AddCoreCsiFiles: Ошибка BeginFileEnumeration(). Если SystemWriter появился в CMD то причина
точно здесь)
5. Начните с помещения половины файлов из c:test обратно в c:windowswinsxsfilemaps.
6. Выполните скрипт «vssadmin list writers». Если вы получите исходную ошибку CAPI2 513, то плохой файл был частью группы, которую вы только что переместили.
(Если SystemWriter появился на шаге 3 то можно просто Долгая загрузка может появится после некорректной установки обновлений или неправильного переноса системных папок Windows. При этом обычно сопровождается ошибкой 513 (Windows 8).
Причина неправильные пути в Карте файлов (FileMaps). Видимо Windows использует File Maps для ускорения загрузки, но иногда получается обратный эффект.
После переноса папок пользователя или ProgramData на другой диск (рано или поздно) вы можете получить ошибку 513 (Сбой служб шифрования в ходе обработки вызова OnIdentity()
в объекте «Системный модуль записи». Details:AddCoreCsiFiles : RtlConvertNtFilePathToWin32Path() failed.)
Для определения её наличия открываем: Администрирование — Управление компьютером — Просмотр событий — Журналы Windows -Приложение
Если эта ошибка присутствует, то это легко решаемо. https://translate.google.ru/translate?hl=ru&sl=en&u=https://social.technet.microsoft.com/Forums/windows/en-US/14abbc90-cab5-4fc6-953a-96c1929f9a7b/eventid-513-capi2-error%3Fforum%3Ditprovistasp&prev=search
1. Предоставьте себе полный доступ к папке c:windowswinsxsFilemaps
2. Создайте где-нибудь пустой каталог, чтобы перенести файлы из Filemaps, для нахождения некорректного файла-пути. К примеру c:test
3. Переместите все файлы из c:windowswinsxsFilemaps в c:test (советую создать 2 резервные копии)
(Если вы выполните в CMD «vssadmin list writers», вы получите CAPI2 513 ошибку: AddCoreCsiFiles: Ошибка BeginFileEnumeration(). Если SystemWriter появился в CMD то причина
точно здесь)
5. Начните с помещения половины файлов из c:test обратно в c:windowswinsxsfilemaps.
6. Выполните скрипт «vssadmin list writers». Если вы получите исходную ошибку CAPI2 513, то плохой файл был частью группы, которую вы только что переместили.
(Если SystemWriter появился на шаге 3 то можно просто ждать появления System Writer в CMD, но всё же не стоит пренебрегать просмотром журнала)
Если нет ошибки, тогда эта группа была чистой.
Повторяйте этот процесс, пока не сузитесь, какой файл вызывает ошибку. Найдя его, удалите его из каталога filemaps. (Я бы сохранил его копию на данный момент)
(На всякий случай, я переносил папку Users в процессе установки и файл с ошибкой оказался «users_default_appdata_roaming_microsoft_windows_start_menu_programs_8181428e5873cb4e.cdf-ms»
— что и предполагалось т.к. он находится на другом диске)
7. После нахождения некорректного файла убедитесь, что вы вернули разрешения, как они были в каталоге filemaps изначально. ждать появления System Writer в CMD, но всё же не
стоит пренебрегать просмотром журнала)
Если нет ошибки, тогда эта группа была чистой.
Повторяйте этот процесс, пока не сузитесь, какой файл вызывает ошибку. Найдя его, удалите его из каталога filemaps. (Я бы сохранил его копию на данный момент)
(На всякий случай, я переносил папку Users в процессе установки и файл с ошибкой оказался «users_default_appdata_roaming_microsoft_windows_start_menu_programs_8181428e5873cb4e.cdf-ms»
— что и предполагалось т.к. он находится на другом диске)
7. После нахождения некорректного файла убедитесь, что вы вернули разрешения, как они были в каталоге filemaps изначально.
РЕШЕНИЕ :
1. Используем утилиту accesschk от MS SysInternals для проверки прав на MSLLDP & MUP :
Код:
– accesschk64 -c mslldp
– accesschk64 -c mup
можно увидеть что SERVICE учетка не имеет доступа.
2. Используем утилиту SC для просмотра дескрипторов безопасности
Код:
– SC sdshow MSLLDP
– SC sdshow MUP
3. Добавляем дескриптор службы SERVICE в MSLLDP
Скопируй MSLLDP строку, и добавь дескриптор безопасности службы SERVICE
4. Обновляем настройки безопасности командой SC SDSET
Код:
– sc sdset MSLLDP + string
5. Проверяем журнал на предмет ошибок, после повторного запуска архивации.
Источник :
https://support.microsoft.com/en-ca/help/3209092/event-id-513-when-running-vss-in-windows-server
На сервере с операционной системой Windows Server 2016 словил ошибку event id 513. Ошибка древняя и лечится просто.
CAPI2 -Cryptographic Services failed while processing the OnIdentity() call in the System Writer Object
Я сразу заметил что баг появился сразу после настройки и запуска резервного копирования.
Во время резервного копирования процесс VSS выполняется от имени пользователя NETWORK_SERVICE. Он вызывает функцию cryptcatsvc!CSystemWriter::AddLegacyDriverFiles(), которая бегает по дискам и открывает их. Функция падает на драйвере MSLLDP (Microsoft Link-Layer Discovery Protocol) с ошибкой «Access Denied». Настройки безопасности MSLLDP не позволяют пользователю NETWORK_SERVICE получить доступ к дискам. Нужно немного изменить их.
Выполняем:
SC sdshow MUP
Результат:
D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)
Копируем отсюда кусок, который даёт доступ пользователю NETWORK_SERVICE:
(A;;CCLCSWLOCRRC;;;SU)
Выполняем:
SC sdshow MSLLDP
Результат:
D:(D;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BG)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY)(A;;CCDCLCSWRPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWRPWPDTLOCRRC;;;SO)(A;;LCRPWP;;;S-1-5-80-3141615172-2057878085-1754447212-2405740020-3916490453)
Берём эту строку и вставляем перед «S:(» скопированный кусок. У меня S:(» отсутствует, добавляю просто в конец. Выполняю:
sc sdset MSLLDP D:(D;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BG)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY)(A;;CCDCLCSWRPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWRPWPDTLOCRRC;;;SO)(A;;LCRPWP;;;S-1-5-80-3141615172-2057878085-1754447212-2405740020-3916490453)(A;;CCLCSWLOCRRC;;;SU)
У вас свои настройки, не копируйте мой текст!
После повторного запуска резервного копирования ошибка не повторилась.
Update: March 2016.
Commenters have noted this same fix appears to work correctly on Windows 10 as well
A semi-common error seen on various Windows 8.1 and 2012/R2 systems is the following during the start of system backups that use VSS (i.e. most backups). This often causes the backup process to hang for a long period of time, or fail.
Application Event Log: 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.
Much digging through forums has found what appears to be the cause.
During backup a VSS process running under NETWORK_SERVICE account calls cryptcatsvc!CSystemWriter::AddLegacyDriverFiles(), which enumerates all the drivers records in Service Control Manager database and tries opening each one of them. , The function fails on MSLLDP record with «Access Denied» error.
Turned out it fails because MSLLDP driver’s security permissions do not allow NETWORK_SERVICE to access the driver record.
What causes this to have incorrect permissions in the first place is unclear, but a fairly simple fix exists. We’ve tested this on several systems without issue, but your mileage may vary.
It can be fixed by correcting the Security Description on the MSLLDP service, using the built-in command line utility SC.exe
Open an Administrative Command Prompt (NOT PowerShell) and execute the following. This must all be one long command without carriage returns
sc sdset MSLLDP D:(D;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BG)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY)(A;;CCDCLCSWRPDTLOCRSDRCWDWO;;;BA)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SO)(A;;LCRPWP;;;S-1-5-80-3141615172-2057878085-1754447212-2405740020-3916490453)(A;;CCLCSWLOCRRC;;;SU)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)
You should receive a successful result of
[SC] SetServiceObjectSecurity SUCCESS
If so, the problem is resolved, and there’s no reboot required. The next backup should complete successfully.











