Gần đây tôi đã xây dựng lại PKI của mình và tôi muốn xóa các chứng chỉ được cấp cho tất cả các máy khách trên mạng của mình. Nghe có vẻ như một công việc cho Powershell! Vì vậy, tôi đã viết kịch bản này để được phân phối bởi GPO, chạy từ SysVol và được kích hoạt trên các máy khách khi khởi động:
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 }
}
Từ một dấu nhắc lệnh nâng cao:
- Khi Ran, tập lệnh không có đầu ra (đơn giản là một dòng thiết bị đầu cuối mới). Nó trả về không có lỗi và Chứng chỉ không bị xóa.
- Khi đối số
-WhatIf
được thêm vàoRemove-Item
lệnh trong tập lệnh, một lần nữa không có lỗi và Chứng chỉ không bị xóa. - Khi Xóa-Mục. \ CHỨNG NHẬN-THUMBPRINT -Force được chạy, chứng chỉ sẽ bị xóa.
Đây có phải là một vấn đề quyền? Có cách nào thông minh hơn / đơn giản hơn để làm điều này?
Cảm ơn!
write-host
để kết xuất một cái gì đó trên màn hình nếu điều kiện là đúng. Tôi tự hỏi nếu tập lệnh được đánh giá là sai (sẽ giải thích không có lỗi và không có hành động).
Remove-Item -Force
?
remove-item -whatif
??