具有源 CertificationAuthority 和 ID 107 的事件的收集规则

Microsoft.Windows.CertificateServices.CARole.2016.CertSvcEvents.107 (Rule)

证书服务无法删除 Active Directory 中的 CA 证书。

Knowledge Base article:

摘要

Active Directory 证书服务 (AD CS) 要求对 Active Directory 域服务 (AD DS) 中的某些对象具有读取访问权限,在某些情况下还要求具有写入权限。如果无法访问这些 Active Directory 对象,则可能会妨碍 AD CS 启动。

解决方案

启用 AD CS 以删除 Active Directory 域服务中的 CA 证书

要启用 Active Directory 证书服务 (AD CS) 以删除 Active Directory 域服务 (AD DS) 的事件日志消息中标识的证书颁发机构 (CA) 证书,请执行以下操作:

要执行此过程,您必须拥有域管理员成员身份,或者您在域控制器中已被委派适当的权限。

确认基本 AD DS 容器和对象的权限

要确认 CA 具有 AD DS 容器以及这些容器内对象的所需权限,请执行以下操作:

以下是托管 CA 的计算机需要的所有 Active Directory 权限。某些权限是通过证书发行者组中的成员存档的。

要执行这些过程,您必须拥有管理 CA 权限,或者您必须被委派了适当的权限。

请确定 AIA 容器中是否存在 CA 证书

要查看 AD DS 的 AIA 容器中的内容,请执行以下操作:

将 MyCA 替换为步骤 3 中的 Sanitized Short Name 属性,并将 contoso 和 com 替换为 Active Directory 根域的轻型目录访问协议 (LDAP) 可分辨名称。

确认 CA 证书状态

要确认事件日志消息中标识的 CA 证书的状态,请执行以下操作:

手动删除 CA 证书

要手动删除 CA 证书,请执行以下操作:

其他

要检查 CA 和 Active Directory 域服务 (AD DS) 之间的连接,请执行以下操作:

使用安装了 CA 的命名空间的名称替换 [域名]。

确认基本 AD DS 容器和对象的权限

要执行此过程,必须拥有管理员成员身份,或者已向你委派了适当的权限。

要确认 CA 具有 AD DS 容器以及这些容器内对象的所需权限,请执行以下操作:

以下是托管 CA 的计算机需要的所有 Active Directory 权限。某些权限是通过证书发行者组中的成员存档的。

Element properties:

TargetMicrosoft.Windows.CertificateServices.CARole.2016
CategoryEventCollection
EnabledTrue
Event_ID107
Event SourceMicrosoft-Windows-CertificationAuthority
Alert GenerateTrue
Alert SeverityError
Alert PriorityHigh
RemotableTrue
Alert Message
AD CS Active Directory 域服务连接 - 无法删除 CA
事件说明:{0}
Event LogApplication

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource Microsoft.Windows.EventProvider Default
Alert WriteAction System.Health.GenerateAlert Default
WriteToCertSvcEvents WriteAction Microsoft.Windows.CertificateServices.CARole.CertSvcEvents.Publisher Default
WriteToDB WriteAction Microsoft.SystemCenter.CollectEvent Default

Source Code:

<Rule ID="Microsoft.Windows.CertificateServices.CARole.2016.CertSvcEvents.107" Enabled="true" Target="CSDisc!Microsoft.Windows.CertificateServices.CARole.2016" ConfirmDelivery="true" Remotable="true" Priority="Normal" DiscardLevel="100">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="DS" TypeID="Windows!Microsoft.Windows.EventProvider">
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>Application</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">107</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Microsoft-Windows-CertificationAuthority</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="WriteToDB" TypeID="SC!Microsoft.SystemCenter.CollectEvent"/>
<WriteAction ID="WriteToCertSvcEvents" TypeID="Microsoft.Windows.CertificateServices.CARole.CertSvcEvents.Publisher"/>
<WriteAction ID="Alert" TypeID="Health!System.Health.GenerateAlert">
<Priority>2</Priority>
<Severity>2</Severity>
<AlertMessageId>$MPElement[Name="AlertMessageID62fe9963ca0840238c71200c88d2958c"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/EventDisplayNumber$</SuppressionValue>
<SuppressionValue>$Data/PublisherName$</SuppressionValue>
<SuppressionValue>$Data/LoggingComputer$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>