DPM 证书疑难解答(第 2 部分):注册表

大家好,Shane Brasher 再次与您见面了。本文将接着 DPM 证书疑难解答(第 1 部分):一般疑难解答结束的地方继续介绍。我们将从这里开始今天的介绍,并看看几个与您的 DPM 证书相关的注册表项缺失或损毁的失败应用场景。

当您设置并运行了所有内容后,证书将位于正确的存储区,而且使用了适当的命令语法在 DPM 服务器和受保护的成员服务器上存放了特定的注册表项。在下一部分中,我们将介绍您将在证书或注册表项缺失时看到的错误。

主题:“证书检查、注册表检查、DPMCPWrapperService 重启检查。清除。重复。”
您在进行基于证书的身份验证故障排除时,应严格遵守此疑难解答的主题。在以下应用场景中,当我删除了一个注册表项或证书后,为了将各种操作返回运行状态,我需要重复上述步骤。这一点十分重要,且屡试不爽。当您进行基于 DPM 证书的身份验证故障排除时:

a.) 检查 DPM 服务器和受保护的服务器上的注册表项。
b.)检查正在使用的证书
c.) 重启 DPM CPWrapper 服务。

注册表项

我们将查看以下应用场景:

DPM 服务器
DPM 证书注册表项(其自有的注册表项)缺失
成员证书注册表项缺失

成员服务器
DPM 证书注册表项缺失
成员服务器证书注册表项(其自有的注册表项)缺失

我们将注意以下内容:
DPM GUI 中的错误
DPM 中警报事件日志的错误
MSDPMCurr.errlog 中的错误
DPMRACurr.errlog 中的错误
DPM CPWrapper 日志中的错误

 

在成员服务器上运行了 SetDPMserver 命令或在 DPM 服务器上运行了 Attach-ProductionServerWithCertificate 命令后,注册表项将会被置于服务器上,将证书与 DPM 服务器和受保护的服务器相关联。

默认的位置是 HKLM\Software\Microsoft\MicrosoftTDataProtectionManager\Agent\2.0\Certificates\<DPMServerName> 或 <ProtectedServerName>

DPM 服务器注册表项

DPM 服务器端注册表项

图像

 

DPM 服务器缺失 DPM 证书注册表项(其自有的注册表项)

在本示例中,我们将查看位于以下位置的错误:
a.) DPM 管理选项卡
b.) DPM 警报事件日志
c.) MSDPMCurr.errlog

在运行了 Set-DPMCredentails 命令之后,如果 DPM 服务器上面向 DPM 服务器自身的注册表项因某些原因缺失或被删除,那么您将在 DPM GUI 中看到以下错误:

注册表项:
HKLM\Software\Microsoft\MicrosoftTDataProtectionManager\Agent\2.0\Certificates\<DPMServerName>

DPM 管理代理状态
****************************

图像

  • 错误:数据保护管理器错误 ID:33304
  • 详细错误代码:内部错误代码:0x80990940

尽管该错误建议用户查看成员服务器上的 CPWrapper 服务,而且这也不失为一个好方法,但是这一情况中的问题出在 DPM 服务器本身。请记住该错误是由删除了 DPM 证书注册表项所导致的。

通常系统将使用 33304 来表示 DPM CPWrapper 服务的错误。在这一情况中是与该服务绑定的相关注册表项。(本系列中第 3 部分所探讨的错误的常见形成原因有很多。)如果该 DPM 注册表项缺失,那么您可能还将看到 DPM CPWrapper 服务器处于“starting”状态,反之,当您试图将该服务与缺失注册表项的服务绑定时,该服务的重启可能失败。您也将在以下目录看到生成的故障日志:C:\Program Files\Microsoft System Center 2012\DPM\DPM\Temp directory。该故障日志将为自身命名为:DPMCPWrapperServiceCurr.errlog.2012-04-30_19-25-50

如果 DPM 注册表项缺失,那么进行的一致性检查和\或使用证书身份验证的受保护数据源上的恢复点将失败,且显示以下错误。

 

DPM 警报事件错误
*************************

如果您无法获得以下所列的所有警报,那么您可能获得其中一条。
DPM 警报事件日志 :事件 ID 3122 警报

图像

DPM 警报事件日志:事件 ID 3115 警报

图像

DPM 警报事件日志:事件 ID 3170 严重

图像

MSDPMCurr.errlog
******************

WARNING Failed: Hr: = [0x80990940] pDpmCmdProcObject->SubmitRequest failed on server MEMBERSERVER.Contoso.com, hrOriginal = 0x80990940, No further retry

WARNING CCommandProcessor::SendOutboundCommandUsingCertificate failed for Server: MEMBERSERVER.Contoso.com

4b0d-8401-d9773b85e7ab" xmlns="https://schemas.microsoft.com/2003/dls/StatusMessages.xsd">

WARNING <ErrorInfo ErrorCode="33304" DetailedCode="-2137454272" DetailedSource="2" ExceptionDetails="" xmlns="https://schemas.microsoft.com/2003/dls/GenericAgentStatus.xsd">

C2797F36-E616-4D5C-AC68-D9DA2216CE2D WARNING <Parameter Name="exceptionmessage" Value="The CPWrapper WCF Service encountered an unknown communication error" />

解决方案:当 DPM 服务器上缺失针对 DPM 服务器自身的注册表项时,用户需要进行以下操作。

1.) 通过注册表备份还原注册表项,如果没有针对该注册表项可用的备份,或者您对该方法信心不足,则进行下一步。

2.) 验证 DPM 服务器上是否存在有效的证书。完成上述步骤后,返回 Set-DPMCredentials 命令,以重新创建该注册表项。请小心执行该步骤以使用适当的语法和正确的指纹。请参考以下资源链接。完成上述步骤后,请确保 DPM 注册表项存在。
示例:

图像

资源: https://blogs.technet.com/b/dpm/archive/2012/04/23/how-to-use-certificates-to-authenticate-computers-in-workgroups-or-untrusted-domains-with-data-protection-manager.aspx

成员服务器注册表项缺失的 DPM 服务器

在 DPM 服务器上运行了 Attach-ProductionServerWithCertificate 命令后 ,如果 DPM 服务器上针对受保护的服务器的注册表项因某些原因缺失或损坏, 那么您将看到以下列出的错误。

在本示例中,我们将注意以下位置中的错误:
a.) DPM 监视选项卡
b.) DPM 管理选项卡
c.) DPM 事件警报选项卡
d.) MSDPMCurr.errlog

注册表项:
HKLM\Software\Microsoft\Microsoft Data Protection Manager\Agent\2.0\Certificates\<Protected ComputerName>

DPM 管理选项卡 - 代理状态
*******************************

图像

  • 错误:数据保护管理器错误 ID:270

 

DPM 监视选项卡
*******************

代理刷新错误

图像

 

DPM 警报事件日志 - 事件 3122

图像

 

 

 

DPM 监视选项卡 - 受保护的服务器一致性检查失败

图像

 

 

MSDPMCurr.errlog
================

2C1A3335-C179-4D87-A993-CBD5B8B8A7C1 WARNING Failed:Hr:= [0x80070005]

0C9C 0F78 04/30 15:17:21.846 68 RornTaskDef.cs(488) 2C1A3335-C179-4D87-A993-CBD5B8B8A7C1 NORMAL RORN TaskDef:Task 2c1a3335-c179-4d87-a993-cbd5b8b8a7c1 stopped with error code 302

0C9C 0F78 04/30 15:17:21.846 02 EventManager.cs(98) 2C1A3335-C179-4D87-A993-CBD5B8B8A7C1 NORMAL Publishing event from AgentJobs.cs(747):JobProgress, [JobID=9470259c-538c-4e3d-8dc6-aff5bcee9d3c]

0C9C 0F78 04/30 15:17:21.847 07 AgentJobs.cs(751) 2C1A3335-C179-4D87-A993-CBD5B8B8A7C1 NORMAL refresh failed with error AMAgentAccessDenied; -2147024891; WindowsHResult

0C9C 0F78 04/30 15:17:21.847 01 TaskExecutor.cs(843) 2C1A3335-C179-4D87-A993-CBD5B8B8A7C1 FATAL Task stopped (state=Failed, error=AMAgentAccessDenied; -2147024891; WindowsHResult) , search "Task Diagnostic Information" for details.

解决方案:当 DPM 服务器缺失针对受保护的成员服务器的适当注册表项时,用户需要进行以下操作:

1.) 通过注册表备份还原注册表项,如果没有针对该注册表项可用的备份,或者您对该方法信心不足,则进行下一步。

2.) 确保您有由成员服务器生成的适当 .bin 文件。完成上述步骤后,运行 Attach-ProductionServerWithCertificate.ps1 命令,指定正确的 .bin 文件。请参考以下资源链接。完成上述步骤后,验证成员服务器注册表项是否存在。

示例:

 

图像

资源: https://blogs.technet.com/b/dpm/archive/2012/04/23/how-to-use-certificates-to-authenticate-computers-in-workgroups-or-untrusted-domains-with-data-protection-manager.aspx

 

 

受保护的服务器端注册表项
现在我们将集中探讨受保护的服务器。我们将进行实验,把受保护的服务器注册表项和 DPM 注册表项从受保护的服务器中删除。完成上述步骤后,我们将看到以下常见错误结果。

我们将查看:
a.) DPM 管理选项卡
b.) DPM 事件警报选项卡
c.) MSDPMCurr.errlog
d.) DPMRACurr.errlog

 

 

注册表项自身缺失的成员服务器。

在运行 setdpmserver –dpmCredentials 命令后,如果受保护的服务器上的注册表项自身缺失或被删除, 那么您将看到以下错误:

注册表项:

HKLM\Software\Microsoft\MicrosoftDataProtectionManager\Agent\2.0\Certificates\<protectedServerName>

图像

 

 

DPM 管理选项卡 - 代理状态

图像

  • 错误:错误 ID:316
  • 详细错误代码:0x8099090E

DPM 警报事件日志 - 事件 ID 3122

图像

 

成员服务器事件日志 - 事件 ID 85

图像

 

MemberServer DPMRA.currerrlog
==========================

schannelutils.cpp(129) 7F9E668E-2A1D-4D55-A498-D7FA318B6068 WARNING Failed: Hr: = [0x80070002] : Error trying to open RegKey [HKLM\Software\Microsoft\Microsoft Data Protection Manager\Agent\2.0\Certificates\MemberServer.Contoso.com]

0EF075F8-504F-48E4-9BAF-85418F0DBD68 WARNING Logging event for error: 33304, detailed: 0x30bf80

注意:导致错误 33304 的数个原因将列于本系列第 3 部分的稍后部分。我们将在删除 DPM 注册表项时看到同样的显示内容。在这一情况下,这是一个缺失其自身注册表项的成员服务器。

DPM MSDPMCurr.errlog
===============

034C 0FD4 04/30 15:55:09.481 07 AMUtil_expanded.cs(3590) 92CBF7B2-BA70-4ACF-B0DA-16FE40E43376 WARNING CheckTimeoutMessage: code[0x20000102], detailedCode[0x8099090e], errMgs[Internal error code: 0x8099090E]

TaskInstance.cs(798) 92CBF7B2-BA70-4ACF-B0DA-16FE40E43376 WARNING &lt;q1:ErrorInfo ErrorCode="316" DetailedCode="-2137454322" DetailedSource="2" ExceptionDetails="" xmlns:q1="https://schemas.microsoft.com/2003/dls/GenericAgentStatus.xsd"&gt;

TaskInstance.cs(798) 92CBF7B2-BA70-4ACF-B0DA-16FE40E43376 WARNING &lt;q1:Parameter Name="servername" Value="MEMBERSERVER.Contoso.com" /&gt;

RornTaskDef.cs(488) 92CBF7B2-BA70-4ACF-B0DA-16FE40E43376 NORMAL RORN TaskDef: Task 92cbf7b2-ba70-4acf-b0da-16fe40e43376 stopped with error code 316

92CBF7B2-BA70-4ACF-B0DA-16FE40E43376 FATAL Task stopped (state=Failed, error=AMAgentNotResponding; -2137454322; WindowsHResult),

 

解决方案: 如果成员服务器自身缺失其自有的注册表项,那么我们需要执行以下步骤:

1.) 通过注册表备份还原注册表项,如果没有针对该注册表项可用的备份,或者您对该方法信心不足,则进行下一步。

2.) 确保我们在计算机\成员服务器上的个人存储区中有适当的证书。

3.) 确保您在 DPM 服务器上运行 Set-DPMCredential 时,我们有 DPM 服务器生成的正确 .bin 文件。

4.) 在成员服务器上运行 SetDPMServer 命令,以确保系统指定正确的 DPM .bin 文件,且包含来自证书的正确成员服务器指纹。请参考以下列出的资源。

资源https://blogs.technet.com/b/dpm/archive/2012/04/23/how-to-use-certificates-to-authenticate-computers-in-workgroups-or-untrusted-domains-with-data-protection-manager.aspx

缺失 DPM 注册表项的成员服务器

在运行 setdpmserver –dpmCredential 命令后,如果受保护的服务器上的注册表项自身缺失或被删除, 那么您将看到以下错误:

注册表项:

HKLM\Software\Microsoft\MicrosoftDataProtectionManager\Agent\2.0\Certificates\<DPMServerName>

 

DPM 管理选项卡 - 代理状态

图像

 

 

  • 详细错误代码:未知错误 (0x90131501) (0x90131501)

DPM 监视选项卡

图像

DPM 警报事件日志 - 事件 ID 3122

图像

日志名称:DPM 警报
源:DPM-EM
日期:4/28/2012 6:34:44 AM
事件 ID:3122
任务类别:无
级别:警报
关键字:经典
用户:不适用
计算机:DPM2012.Contoso.com
描述:无法联系 MEMBERSERVER.Contoso.com 上的 DPM 保护代理。如果未建立连接,那么该计算机的后续保护活动可能失败。尝试连接失败的原因如下 :(ID:3122)

MEMBERSERVER.Contoso.com 计算机上的 DPM CPWrapper 服务身份验证失败。 Exception Message = Access 被拒绝。(ID:33303)

注意错误 3303 表示该服务未向该客户端授权。

DPM 警报事件日志 - 事件 ID 3170

图像

MSDPMCurr.errlog
****************

0DF4 0634 04/30 15:30:28.570 01 TaskInstance.cs(798) 51A021F9-8D5E-477B-94D4-73A986EEBDC0 WARNING &lt;q1:ErrorInfo ErrorCode="33303" DetailedCode="-2146233087" DetailedSource="2" ExceptionDetails="" xmlns:q1="https://schemas.microsoft.com/2003/dls/GenericAgentStatus.xsd"&gt;

0DF4 0634 04/30 15:30:28.570 01 TaskInstance.cs(798) 51A021F9-8D5E-477B-94D4-73A986EEBDC0 WARNING &lt;q1:Parameter Name="servername" Value="MEMBERSERVER.Contoso.com" /&gt;

0DF4 0634 04/30 15:30:28.570 01 TaskInstance.cs(798) 51A021F9-8D5E-477B-94D4-73A986EEBDC0 WARNING &lt;q1:Parameter Name="exceptionmessage" Value="Access is denied." /&gt;

0DF4 0634 04/30 15:30:28.573 01 TaskExecutor.cs(843) 51A021F9-8D5E-477B-94D4-73A986EEBDC0 FATAL Task stopped (state=Failed, error=WCFServiceAuthorizationFailed; -2146233087; WindowsHResult), search "Task Diagnostic Information" for details.

注意: 错误 3303 表示该服务未向该客户端授权。

解决方案: 与缺失其自有的注册表项的成员服务器的解决步骤相同。
这些步骤将重新创建 DPM 服务器和成员服务器的注册表项。

 

结论: 作为一项预防措施,我们建议用户主动为服务器端和 DPM 端的注册表项进行备份。这可通过系统状态或 BMR 备份来完成,但是如果您不希望回滚到上一系统状态或 BMR 快照,那么您只需备份这些可运行的注册表项。此外,如果您只希望备份单个注册表项,那么相比系统状态和 BMR 还原,整个还原过程将更为迅速。

DPM 证书疑难解答的第 2 部分到此结束。第 3 部分将介绍证书缺失或无效的疑难解答。

Shane Brasher | 高级支持呈报工程师

 

App-V 团队博客:https://blogs.technet.com/appv/
ConfigMgr 支持团队博客:https://blogs.technet.com/configurationmgr/
DPM 团队博客:https://blogs.technet.com/dpm/
MED-V 团队博客:https://blogs.technet.com/medv/
Orchestrator 支持团队博客:https://blogs.technet.com/b/orchestrator/
Operations Manager 团队博客:https://blogs.technet.com/momteam/
SCVMM 团队博客:https://blogs.technet.com/scvmm
Server App-V 团队博客:https://blogs.technet.com/b/serverappv
Service Manager 团队博客:https://blogs.technet.com/b/servicemanager
System Center Essentials 团队博客:https://blogs.technet.com/b/systemcenteressentials
WSUS 支持团队博客:https://blogs.technet.com/sus/

Forefront Server Protection 博客:https://blogs.technet.com/b/fss/
Forefront Endpoint Security 博客:https://blogs.technet.com/b/clientsecurity/
Forefront Identity Manager 博客:https://blogs.msdn.com/b/ms-identity-support/
Forefront TMG 博客:https://blogs.technet.com/b/isablog/
Forefront UAG 博客:https://blogs.technet.com/b/edgeaccessblog/