Система мониторинга с одного из серверов с Windows Server 2016 при каждой загрузке сервера стала слать события с ошибкой службы теневого копирования томов в журнале Application с EventID 8193 от источника VSS:
Volume Shadow Copy Service error: Unexpected error calling routine RegOpenKeyExW (-2147483646, SYSTEM\CurrentControlSet\Services\VSS\Diag,...). hr = 0x80070005, Access is denied. Operation: Initializing Writer Context: Writer Class Id: {e8132975-6f93-4464-a53e-1050253ae220} Writer Name: System Writer Writer Instance ID: {4f096fb4-2e00-4864-aa8f-885aa9186850}
На русском:
Ошибка теневого копирования тома: Непредвиденная ошибка при вызове подпрограммы RegOpenKeyExW (-2147483646,SYSTEM\CurrentControlSet\Services\VSS\Diag,...).. hr = 0x80070005, Отказано в доступе. Операция: Инициализация модуля записи Контекст: Код класса модуля записи: {e8132975-6f93-4464-a53e-1050253ae220} Имя модуля записи: System Writer Код экземпляра модуля записи: {4f096fb4-2e00-4864-aa8f-885aa9186850}
При этом сервер работает нормально, каких-то видимых проблем со службами нет. В списке модулей VSS также нет ошибок для ID этого экземпляра VSS Writer:
vss list writers
Данная ошибка довольно старая и обычно связана с установкой DHCP роли на сервер Windows Server 2008 (и выше), после которого у учетной записи Network Service пропадают права на ветку реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VSS\Diag.
Проблема связана с установкой модуля теневого копирования VSS — DHCP Jet Writer, отвечающего за корректное создание теневых копий DHCP службы, который изменяет права на ветку.
Чтобы исправить ошибку нужно вручную с помощью редактора реестра предоставить полные права для Network Service на указанную ветку.
- Запустите regedit.exe;
- Перейдите к ветке HKLM\SYSTEM\CurrentControlSet\services\VSS\Diag и откройте окно с правами на ветку реестра (пункт Permissions в контекстном меню);
- В списке разрешений найдите Network Service и в разрешениях предоставьте полный доступ (Full Control).
Вместо ручной правки реестра более правильнее было бы восстановить стандартные права на нее с помощью утилиты командной строки SubInACL. Скачайте и установите утилиту, (если это еще не сделано) и выполните следующие команды:
cd “C:\Program Files (x86)\Windows Resource Kits\Tools” subinacl.exe /Subkeyreg System\CurrentControlSet\Services\VSS\Diag /sddl=D:PAI(A;;KA;;;BA)(A;;KA;;;SY)(A;;CCDCLCSWRPSDRC;;;BO)(A;;CCDCLCSWRPSDRC;;;LS)(A;;CCDCLCSWRPSDRC;;;NS)(A;CIIO;RC;;;OW)(A;;KR;;;BU)(A;CIIO;GR;;;BU)(A;CIIO;GA;;;BA)(A;CIIO;GA;;;BO)(A;CIIO;GA;;;LS)(A;CIIO;GA;;;NS)(A;CIIO;GA;;;SY)(A;CI;CCDCLCSW;;;S-1-5-80-3273805168-4048181553-3172130058-210131473-390205191)(A;ID;KR;;;AC)(A;CIIOID;GR;;;AC)S:ARAI
В Windows Server 2008 R2 команда будет такая (согласно KB Microsoft):
subinacl.exe /Subkeyreg System\CurrentControlSet\Services\VSS\Diag /sddl=O:SYG:SYD:PAI(A;;KA;;;BA)(A;;KA;;;SY)(A;;SDGRGW;;;BO)(A;;SDGRGW;;;LS)(A;;SDGRGW;;;NS)(A;CIIO;RC;;;S-1-3-4)(A;;KR;;;BU)(A;CIIO;GR;;;BU)(A;CIIO;GA;;;BA)(A;CIIO;GA;;;BO)(A;CIIO;GA;;;LS)(A;CIIO;GA;;;NS)(A;CIIO;GA;;;SY)(A;CI;CCDCLCSW;;;S-1-5-80-3273805168-4048181553-3172130058-210131473-390205191)
Затем в редакторе реестра нужно выполнить замену разрешений на вложенные объекты. Для этого откройте свойства ключа Diag и выполните “Permissions” -> “Advanced” -> “Replace all child object permissions ….».
Осталось перезагрузить Windows.
PS. Уже в процесса написания статьи обнаружил что существует еще одна ошибка VSS с таким же (!!!) EventID 8193 с описанием:
Volume Shadow Copy Service error: Unexpected error calling routine ConvertStringSidToSid(S-1-5-21-2470146651-3958396388-212345117-21232.bak). hr = 0x80070539,The security ID structure is invalid. Operation: OnIdentify event Gathering Writer Data Context: Execution Context: Shadow Copy Optimization Writer Writer Class Id: {4dc3bdd4-ab48-4d07-adb0-3bee2926fd7f} Writer Name: Shadow Copy Optimization Writer Writer Instance ID: {5e5d68e6-9c97-4af6-a09f-bb2db4c65058}
Русский:
Ошибка теневого копирования тома: Непредвиденная ошибка при вызове подпрограммы ConvertStringSidToSid(S-1-5-21-2470146651-3958396388-212345117-21232.bak, Идентификатор безопасности имеет неверную структуру.
Чтобы статья была более полной, оставлю тут метод решения и этой ошибки.
Данная ошибка препятствует выполнению резервному копирования системы (System State Backup) с помощь Windows Server Backup, который завершается с ошибкой
“0x80042308: The specified object was not found
».
Проблема решается по другому и связана с наличием некорректной записи в ветке реестра с профилями пользователей HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList. Связано с тем, что служба VSS (компонент Shadow Copy Optimization Writer ) не может найти профиль пользователя с SID, оканчивающимся на .bak и выпадает в ошибку. Нужно удалить ключ реестра, который указан в описании события ConvertStringSidToSid(S-1-5-21-2470146651-3958396388-212345117-21232.bak).
- Откройте regedit.exe;
- Перейдите в ветку HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList;
- Найдите и удалите ветку реестра с суффиксом .bak;
- Перезагрузите сервер и попробуйте выполнить резервное копирование.