मैंने हाल ही में अपने पीकेआई का पुनर्निर्माण किया है और मैं अपने नेटवर्क के सभी क्लाइंट मशीनों को जारी किए गए प्रमाणपत्रों को हटाना चाहूंगा। 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 }
}
एक उन्नत कमांड प्रॉम्प्ट से:
- जब रैन, स्क्रिप्ट कोई आउटपुट नहीं देता है (बस एक नई टर्मिनल लाइन)। यह कोई त्रुटि नहीं देता है और प्रमाणपत्र नष्ट नहीं किया जाता है।
- जब तर्क
-WhatIf
कोRemove-Item
स्क्रिप्ट में कमांड में जोड़ा जाता है , तो फिर से कोई त्रुटि नहीं होती है और प्रमाणपत्र को हटा नहीं दिया जाता है। - जब निकालें-आइटम। \ CERTIFICATE-THUMBPRINT -Force चलाया जाता है, तो प्रमाणपत्र हटा दिया जाता है।
क्या यह एक अनुमति मुद्दा है? क्या ऐसा करने का कोई चालाक / सरल तरीका है?
धन्यवाद!
write-host
यदि स्थिति सही है, तो स्क्रीन पर कुछ डंप करने के लिए जोड़ें । मैं सोच रहा था कि क्या स्क्रिप्ट गलत के रूप में मूल्यांकन कर रही है (कोई त्रुटि और कोई कार्रवाई नहीं समझाएगा)।
Remove-Item -Force
?
remove-item -whatif
??