Windows 11 Certificaten, beheer en opruiming

Status
Niet open voor verdere reacties.

PhilipV

Beheerder
Forumleiding
Admin
Ik heb op één van mijn PC's in de Certificates - Local Computer onwaarschijnlijk véél certificaten in een onverklaarbare massa folders staan. Er zijn er een heel aantal bij waarvan de expiration date al lang verstreken is.
Dit manueel allemaal opruimen is wel mogelijk, maar niet echt leuk werk en erg tijdrovend.

Kent er iemand misschien een opruimtool om al die oude certificaten te verwijderen ?
 
Oplossing
Heb je wat Powershell code geschreven die je hierbij kan helpen. Voer bovenstaande uit en check de inhoud van het aangemaakte JSON bestand. Haal daar alle objecten uit die je NIET wilt verwijderen. Enkel vervallen certificaten zijn hierin vermeld.

Code:
$currentDate = Get-Date
$certs = Get-ChildItem -Recurse -Path "Cert:\" -force | Where-Object { ($_.PSISContainer -eq $false) -and ($_.NotAfter -lt $currentDate) } | Select-Object -Property *

$filteredCerts = $certs | Select-Object FriendlyName,Subject,PSParentPath,PSPath,Thumbprint
$filteredCerts | ConvertTo-Json | Out-File "c:\temp\certs.json"

Bovenstaande code plaats alle vervallen certificaten in een JSON file onder c:\temp.certs.json

Onderstaande code leest de JSON file en...
Heb je wat Powershell code geschreven die je hierbij kan helpen. Voer bovenstaande uit en check de inhoud van het aangemaakte JSON bestand. Haal daar alle objecten uit die je NIET wilt verwijderen. Enkel vervallen certificaten zijn hierin vermeld.

Code:
$currentDate = Get-Date
$certs = Get-ChildItem -Recurse -Path "Cert:\" -force | Where-Object { ($_.PSISContainer -eq $false) -and ($_.NotAfter -lt $currentDate) } | Select-Object -Property *

$filteredCerts = $certs | Select-Object FriendlyName,Subject,PSParentPath,PSPath,Thumbprint
$filteredCerts | ConvertTo-Json | Out-File "c:\temp\certs.json"

Bovenstaande code plaats alle vervallen certificaten in een JSON file onder c:\temp.certs.json

Onderstaande code leest de JSON file en verwijderd alle overeenkomstige certificaten van je Local Cert store.
Welliswaar na het weghalen van onderste '#' commentaar veld. -> $certToRemove | Remove-Item -force -verbose
Je kan eerst de code runnen zoals hieronder geplaatst (met remove als comment), om te zien wat hij gaat uitvoeren (verwijderen dus).
Als veiligheid gaat hij elk te verwijderen certificaat eerst backupen onder je c:\temp folder.

Code:
$RemoveCerts = Get-Content -Path "c:\temp\certs.json" | ConvertFrom-Json

foreach($cert in $RemoveCerts) {
   
    $certToRemove = Get-ChildItem -Recurse -Path "Cert:\" -force | Where-Object { $_.PSPath -eq $cert.PSPath } 
    $exportPath = "C:\Temp\{0}.P7B" -f $($certToRemove.Thumbprint)
    Export-Certificate -Cert $certToRemove -FilePath $exportPath -Type P7B -force | Out-Null

    $subject = ($certToRemove.Subject).Split(',')[0]
    $subject = $subject.Split('=')[-1]

    $PSParentPath = ($certToRemove.PSParentPath).Split('::')[-1]

    $certLocation = "{0}: {1}" -f $PSParentPath, $Subject

    Write-Host("DELETE CERT: : $certLocation")
    #$certToRemove | Remove-Item -force -verbose
}
 
Oplossing
Man, dat werkt prima !!
Opnieuw runnen van het eerste deel, na het tweede, resulteert in een leeg certs.json ! Alles weg.

Klein schoonheidsfoutje in het tweede deel visueel : die aktie geeft immers een foutmelding op alle certificaten waar de Friendly Name leeg is, NULL - cannot etc...
Maar visuele controle leert dat de verwijdering van het betrokken certificaat eigenlijk wel gebeurd is.

Dank, maat, eentje om in te kaderen !(y)
 
Bijkomend vraagje : na dat script blijven er een toch vrij groot aantal compleet lege folders in de cert. store achter.
Mag ik die manueel gewoon even verwijderen, dacht ik toch ...

Maar ... ik vind geen commando of icoon om folders te verwijderen ... kan het ?
 
Moet ik eens bekijken. Heb je zo'n voorbeeld van een lege folder? Er zijn zowiezo wel cert store folders die default zijn. Die laat je ook beter staan. Ik vermoed dat er bij jou wel een bepaalde applicatie folders aangemaakt heeft, want standaard is dit aantal toch wel beperkt.
 
1697210498472.png

1697210572654.png

1697210634555.png
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan