Não, o PKIView.msc não fornece nenhum meio / capacidade de automação. Você tem que escrever seus próprios scripts. O que eu gostaria de sugerir (desculpe, nenhum código real, mas uma maneira de fazer isso) é considerar o seguinte plano e possíveis ferramentas (supondo, você usará o Windows PowerShell):
- enumerar todas as Autoridades de certificação da empresa (usando ICertConfig interface)
- faça um loop sobre cada CA e recupere o certificado mais recente do CA Exchange ( ICertAdmin :: GetCAProperty com
CR_PROP_CAXCHGCERT
no parâmetroPropId
) - use X509Chanin.Build () método para construir a cadeia para cada certificado do CA Exchange. Isso lhe dará todos os certificados para examinar.
- faça um loop sobre cada certificado e use CryptGetObjectUrl função para extrair URLs das extensões CDP e AIA.
- use o cmdlet Invoke-WebRequest para tentar baixar objetos do URL reunido na etapa anterior.
- denuncie os downloads com falha. Se o download for bem-sucedido, você pode definir limites para avisar sobre itens prestes a expirar ou já expirados.
Existem muitas maneiras, mas eu gostaria de ir com essa (estou planejando trabalhar nisso no próximo ano, então é possível).
e a última sugestão: se você está procurando uma solução confiável, não confie na análise de saída certutil, porque sua saída depende de vários fatores e pode não ser a esperada.
Além disso, essa tarefa será simplificada se você usar o módulo PKI do PowerShell . Este módulo já oferece maneiras de enumerar CAs corporativas, ler CRLs de maneira gerenciada, recuperar certificados do CA Exchange e assim por diante.
update 26.12.2014 : um PoC do script agora está disponível: PKI Enterprise (pkiview.msc) do PowerShell Edition (PoC)