আমি সম্প্রতি আমার পিকেআই পুনর্নির্মাণ করেছি এবং আমি আমার নেটওয়ার্ক জুড়ে সমস্ত ক্লায়েন্ট মেশিনকে দেওয়া শংসাপত্রগুলি মুছতে চাই। পাওয়ারশেলের জন্য একটি কাজের মতো শোনাচ্ছে! তাই আমি জিপিও দ্বারা বিতরণ করার জন্য এই স্ক্রিপ্টটি লিখেছিলাম, সিসভোল থেকে ছুটে এসে স্টার্টআপে ক্লায়েন্ট মেশিনে ট্রিগার করেছিলাম:
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
, আবার কোনও ত্রুটি হয় না এবং শংসাপত্রটি মোছা হয় না। - সরান-আইটেম। \ শংসাপত্র-থম্ব্প্রিন্ট -ফর্স চালানো হয়, শংসাপত্র মুছে ফেলা হয়।
এটি কি অনুমতির সমস্যা? এটি করার জন্য কি আরও স্মার্ট / সহজ উপায় আছে?
ধন্যবাদ!
write-host
শর্তসাপেক্ষ সত্য হলে আপনার শর্তাধীন কোডব্লকটিতে স্ক্রিনে কিছু ফেলে দেওয়ার জন্য যুক্ত করুন। আমি ভাবছি যে স্ক্রিপ্টটি মিথ্যা হিসাবে মূল্যায়ন করছে (কোনও ত্রুটি এবং কোনও ক্রিয়া ব্যাখ্যা করবে)।
Remove-Item -Force
?
remove-item -whatif
??