ฉันเพิ่งสร้าง PKI ขึ้นใหม่และฉันต้องการลบใบรับรองที่ออกให้กับเครื่องไคลเอนต์ทั้งหมดในเครือข่ายของฉัน ดูเหมือนงาน Powershell! ดังนั้นฉันจึงเขียนสคริปต์นี้เพื่อแจกจ่ายโดย GPO วิ่งจาก SysVol และเรียกใช้บนเครื่องไคลเอ็นต์เมื่อเริ่มต้น:
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 }
}
จากพรอมต์คำสั่งที่ยกระดับ:
- เมื่อ Ran สคริปต์จะไม่ส่งออก (เพียงแค่เทอร์มินัลบรรทัดใหม่) มันจะส่งกลับไม่มีข้อผิดพลาดและใบรับรองจะไม่ถูกลบ
- เมื่ออาร์กิวเมนต์
-WhatIf
ถูกเพิ่มเข้ากับRemove-Item
คำสั่งในสคริปต์อีกครั้งจะไม่มีข้อผิดพลาดและใบรับรองจะไม่ถูกลบ - เมื่อ Remove-Item. \ CERTIFICATE-THUMBPRINT -Force ถูกรันอยู่ใบรับรองจะถูกลบ
นี่เป็นปัญหาสิทธิ์หรือไม่ มีวิธีที่ชาญฉลาด / ง่ายกว่าในการทำเช่นนี้?
ขอบคุณ!
write-host
เพื่อถ่ายโอนข้อมูลบางอย่างบนหน้าจอหากเงื่อนไขเป็นจริง ฉันสงสัยว่าสคริปต์กำลังประเมินว่าเป็นเท็จหรือไม่ (จะอธิบายข้อผิดพลาดและไม่ดำเนินการใด ๆ )
Remove-Item -Force
อะไร?
remove-item -whatif
ไหม