我正在使用企业PKIpipe理单元来诊断和检查MSFT PKI系统的运行状况。
有没有什么方法脚本/自动化这个工具来提醒我CRL的挂起到期或失踪的友邦?
不,PKIView.msc不提供任何自动化手段/function。 你必须写你自己的脚本。 我会build议(对不起,没有实际的代码,但是这样做的一种方法)是考虑以下计划和可能的工具(假设您将使用Windows PowerShell):
PropId参数中使用CR_PROP_CAXCHGCERT ICertAdmin :: GetCAProperty ) 有很多方法,但我会去这个(我打算明年在这个工作,所以这是可能的)。
和最后一个build议:如果你正在寻找一个可靠的解决scheme,不要依赖certutil输出parsing,因为它的输出取决于许多因素,可能不是你所期望的。
而且,如果您使用PowerShell PKI模块 ,则此任务将得到简化。 该模块已经提供了列举企业CA的方法,以pipe理方式读取CRL,检索CA Exchange证书等。
更新26.12.2014 :脚本的PoC现在可用: 企业PKI(pkiview.msc)PowerShell版本(PoC)
当某些事情出错时,MMC会显示红色/黄色图标,但是它是一个交互式控制台,没有自动化function。 我使用powershell来调用CERTUTIL CLI命令来检查过期,并调用web请求来testingAIA的可用性。
gci \\servername\certenroll\*.crl | foreach { certutil -dump $_.fullname | out-string | % { $_ -match "Next CRL Publish\r\n\s+(.*)" | out-null } $expire = [datetime]$matches[1] $expire # do some date math on $expire # send some email if about to expire } $aia = "http://pki.acme.com/acme.crt" if ( (invoke-webrequest $aia).statuscode -ne 200) { # not found, send-mailmessage }