使用 Windows Server 备份的系统状态备份失败并出现错误:在备份中找不到系统编写器

本文提供了使用 Windows Server 备份无法执行系统状态备份的问题的解决方案。

适用于: Windows Server 2012 R2
原始 KB 编号: 2009272

症状

在 Windows Server 2008 上使用 Windows Server 备份执行系统状态备份时,备份失败并出现以下错误:

系统状态备份失败 [<DateTime>]
已成功备份的文件的日志
'C:\Windows\Logs\WindowsServerBackup\SystemStateBackup <DateTime>.log'
备份失败的文件的日志
'C:\Windows\Logs\WindowsServerBackup\SystemStateBackup_Error <DateTime>.log'
在备份中找不到系统编写器。

在应用程序事件日志中,记录了以下事件:

日志名称:应用程序
来源:Microsoft-Windows-Backup
事件 ID:517
级别:错误
说明:
备份在“DateTime>”<开始失败,错误代码为“2155348226”, (backup.) 中找不到系统编写器。 问题解决后,请重新运行备份。

日志名称:应用程序
来源:Microsoft-Windows-CAPI2
事件 ID:513
级别:错误
说明:
在系统编写器对象中处理 OnIdentity () 调用时,加密服务失败。
细节:
AddCoreCsiFiles:BeginFileEnumeration () 失败。
系统错误:
访问被拒绝。

原因

系统编写器失败,因为对 或 %windir%\winsxs\temp\PendingRenames 目录中的文件%windir%\winsxs\filemaps\的权限不正确。

解决方案

若要解决此问题,请在提升的命令提示符中键入以下命令:

Takeown /f %windir%\winsxs\temp\PendingRenames /a
icacls %windir%\winsxs\temp\PendingRenames /grant "NT AUTHORITY\SYSTEM:(RX)"
icacls %windir%\winsxs\temp\PendingRenames /grant "NT Service\trustedinstaller:(F)"
icacls %windir%\winsxs\temp\PendingRenames /grant BUILTIN\Users:(RX)  
Takeown /f %windir%\winsxs\filemaps\* /a  
icacls %windir%\winsxs\filemaps\*.* /grant "NT AUTHORITY\SYSTEM:(RX)"
icacls %windir%\winsxs\filemaps\*.* /grant "NT Service\trustedinstaller:(F)"
icacls %windir%\winsxs\filemaps\*.* /grant BUILTIN\Users:(RX)
net stop cryptsvc
net start cryptsvc

键入以下命令,验证系统编写器现在是否已列出:

vssadmin list writers

如果缺少系统编写器,检查以下事件的应用程序事件日志:

日志名称:应用程序
源:VSS
事件 ID:8213
级别:错误
说明:
卷影复制服务错误:托管名为“系统编写器”且 ID 为 {e8132975-6f93-4464-a53e-1050253ae220} 的进程不会在具有足够访问权限的用户下运行。 请考虑在本地帐户(即本地系统、管理员、网络服务或本地服务)下运行此过程。
操作:
初始化编写器
上下文:
编写器类 ID: {e8132975-6f93-4464-a53e-1050253ae220}
编写器名称:系统编写器

事件 (二进制数据\字节) 的“详细信息”部分将显示为:

0000:2D 20 43 6F 64 65 3A 20 - 代码:
0008:57 52 54 57 52 54 49 43 WRTWRTIC
0010: 30 30 30 30 30 37 32 39 00000729
0018:2D 20 43 61 6C 6C 3A 20 - 呼叫:
0020:57 52 54 57 52 54 49 43 WRTWRTIC
0028: 30 30 30 30 30 36 34 39 00000649
0030:2D 20 50 49 44 3A 20 20 - PID:
0038: 30 30 30 30 31 30 38 34 00001084
0040:2D 20 54 49 44 3A 20 20 - TID:
0048: 30 30 30 31 38 39 37 36 00018976
0050:2D 20 43 4D 44 3A 20 20 - CMD:
0058:43 3A 5C 57 69 6E 64 6F C:\Windo
0060:77 73 5C 73 79 73 74 65 ws\syste
0068:6D 33 32 5C 73 76 63 68 m32\svch
0070:6F 73 74 2E 65 78 65 20 ost.exe
0078:2D 6B 20 4E 65 74 77 6F -k Netwo
0080:72 6B 53 65 72 76 69 63 rkServic
0088: 65 20 20 20 20 20 20 e
0090:2D 20 55 73 65 72 3A 20 - 用户:
0098:4E 54 20 41 55 54 48 4F NT AUTHO
00a0:52 49 54 59 5C 4E 45 54 RITY\NET
00a8:57 4F 52 4B 20 53 45 52 WORK SER
00b0: 56 49 43 45 20 20 20 20 VICE
00b8:2D 20 53 69 64 3A 20 20 - Sid:
00c0:53 2D 31 2D 35 2D 32 30 S-1-5-20

打开 Regedit 并导航到以下项: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VSS\VssAccessControl

将 NT AUTHORITY\NETWORK SERVICE (REG_DWORD) 的值更改为 1。

可能还需要检查其他服务的条目, (本地服务、NetworkService) ,如事件 8213 所示。

系统编写器现在应显示在 命令中 vssadmin list writers

编写器名称:系统编写器
编写器 ID: {e8132975-6f93-4464-a53e-1050253ae220}
编写器实例 ID: {04cf6316-f0c5-4ce7-bbe4-e56e6334124c}
状态:[1] 稳定
上一个错误:无错误