Saya baru-baru ini membangun kembali PKI saya dan saya ingin menghapus sertifikat yang dikeluarkan untuk semua mesin klien di jaringan saya. Kedengarannya seperti pekerjaan untuk Powershell! Jadi saya menulis skrip ini untuk didistribusikan oleh GPO, dijalankan dari SysVol, dan dipicu pada mesin klien saat startup:
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 }
}
Dari prompt perintah yang ditinggikan:
- Saat Ran, skrip tidak memberikan output (hanya jalur terminal baru). Ia tidak mengembalikan kesalahan dan Sertifikat tidak terhapus.
- Ketika argumen
-WhatIf
ditambahkan keRemove-Item
perintah dalam skrip, sekali lagi tidak ada kesalahan dan Sertifikat tidak terhapus. - Ketika Remove-Item. \ CERTIFICATE-THUMBPRINT -Force dijalankan, sertifikat dihapus.
Apakah ini masalah izin? Apakah ada cara yang lebih pintar / sederhana untuk melakukan ini?
Terima kasih!
write-host
untuk membuang sesuatu di layar jika kondisi itu benar. Saya ingin tahu apakah skrip dievaluasi sebagai false (akan menjelaskan tidak ada kesalahan dan tidak ada tindakan).
Remove-Item -Force
?
remove-item -whatif
??