Recentemente, reconstruí minha PKI e gostaria de excluir os certificados que foram emitidos para todas as máquinas clientes na minha rede. Parece um trabalho para o Powershell! Então, eu escrevi esse script para ser distribuído pelo GPO, executado a partir do SysVol e acionado nas máquinas clientes na inicialização:
set-location cert:\LocalMachine\My
$certname = $env:COMPUTERNAME + ".domain.com"
get-item * | %{
if($_.issuer -like "CN=IssuingCA*" -and $_.DnsNameList.unicode -like $certname) { remove-item .\$_.Thumbprint -Force }
}
Em um prompt de comando elevado:
- Quando Ran, o script não fornece saída (simplesmente uma nova linha de terminal). Ele não retorna erros e o certificado não é excluído.
- Quando o argumento
-WhatIf
é adicionado aoRemove-Item
comando no script, novamente não há erros e o Certificado não é excluído. - Quando Remove-Item. \ CERTIFICATE-THUMBPRINT -Force é executado, o certificado é excluído.
Isso é um problema de permissão? Existe uma maneira mais inteligente / simples de fazer isso?
Obrigado!
write-host
para despejar algo na tela se o condicional for verdadeiro. Gostaria de saber se o script está avaliando como falso (explicaria o nenhum erro e nenhuma ação).
Remove-Item -Force
?
remove-item -whatif
??