পাওয়ারশেল দূরবর্তীভাবে পিকেআই শংসাপত্রগুলি মুছুন


9

আমি সম্প্রতি আমার পিকেআই পুনর্নির্মাণ করেছি এবং আমি আমার নেটওয়ার্ক জুড়ে সমস্ত ক্লায়েন্ট মেশিনকে দেওয়া শংসাপত্রগুলি মুছতে চাই। পাওয়ারশেলের জন্য একটি কাজের মতো শোনাচ্ছে! তাই আমি জিপিও দ্বারা বিতরণ করার জন্য এই স্ক্রিপ্টটি লিখেছিলাম, সিসভোল থেকে ছুটে এসে স্টার্টআপে ক্লায়েন্ট মেশিনে ট্রিগার করেছিলাম:

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, আবার কোনও ত্রুটি হয় না এবং শংসাপত্রটি মোছা হয় না।
  • সরান-আইটেম। \ শংসাপত্র-থম্ব্প্রিন্ট -ফর্স চালানো হয়, শংসাপত্র মুছে ফেলা হয়।

এটি কি অনুমতির সমস্যা? এটি করার জন্য কি আরও স্মার্ট / সহজ উপায় আছে?

ধন্যবাদ!


1
আপনি চেষ্টা করেছেন remove-item -whatif??
MDMoore313

@BigHomie। হ্যাঁ, আমি চেষ্টা করেছিলাম। আমি মনে করি কোনও তথ্য সম্পাদনায় সেই তথ্যটি সরিয়ে নিয়েছে ...
বায়রন সি

1
write-hostশর্তসাপেক্ষ সত্য হলে আপনার শর্তাধীন কোডব্লকটিতে স্ক্রিনে কিছু ফেলে দেওয়ার জন্য যুক্ত করুন। আমি ভাবছি যে স্ক্রিপ্টটি মিথ্যা হিসাবে মূল্যায়ন করছে (কোনও ত্রুটি এবং কোনও ক্রিয়া ব্যাখ্যা করবে)।
Colyn1337

@ কলিন 1313 হ্যাঁ। এটা সত্য মূল্যায়ন করা হয়।
বায়রন সি

@ByronC। কোডব্লকটি যদি ঠিক হয় তবে কী হবে Remove-Item -Force?
Colyn1337

উত্তর:


6

আমার উত্তর "এটি করার জন্য কোনও চতুর / সহজ উপায় আছে?" আপনার প্রশ্নের অংশ। এই স্ক্রিপ্টটি আমার জন্য গো বাবা ডেস্কটপ সরিয়ে ফেলতে সফল হয়েছিল

$Path = 'Cert:\LocalMachine\AuthRoot\'
$CertList = @()

$CertList = Get-ChildItem -Path $Path | Where-Object {$_.Issuer -like "CN=GO*"}

foreach($Cert in $CertList){
    remove-item "$($Path)$($Cert.Thumbprint)" -Force -WhatIf
}

আমি একটি যুক্ত করেছি -WhatIfযাতে এই কোডটি "অনুলিপি \ পেস্ট \ রান" ফলের জন্য বিপজ্জনক ছিল না। এখন, আপনি খাপ খাওয়ানো করতে হবে $Path, Where-Objectএবং যোগ $certnameপরিবর্তনশীল, কিন্তু উপরে টেমপ্লেট যাচ্ছ থাকা উচিত।


3

যদিও আমি স্ক্রিপ্টটি দিয়ে সমস্যাটি সমাধান করতে সক্ষম হইনি, তবে আমি আমার লক্ষ্য অর্জনের জন্য একটি 'স্মার্ট / সিম্পলার' উপায় খুঁজতে সক্ষম হয়েছি

শংসাপত্র কর্তৃপক্ষ থেকে:

  • আরটি-ক্লিক করুন Certificate Templatesএবং নির্বাচন করুনManage
  • আপনি প্রতিস্থাপন এবং নির্বাচন করতে চান শংসাপত্র টেমপ্লেট আরটি-ক্লিক করুন Reenroll All Certificate Holders

এটি টেমপ্লেটের সংস্করণ সংখ্যা বৃদ্ধি করবে এবং স্বতঃ-তালিকাভুক্ত নেটওয়ার্ক নেটওয়ার্কগুলি পুরানো শংসাপত্রটি মুছে ফেলবে এবং নতুন সার্টের সাথে তালিকাভুক্ত হবে।

যদিও আমি যে নির্দিষ্ট টেম্পলেট নিয়ে কাজ করছি তার জন্য এটি স্বতঃ তালিকাভুক্ত হওয়া প্রয়োজন, তবে পোস্ট করা স্ক্রিপ্টের একটি সমাধান একটি পছন্দনীয় উত্তর হবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.