Я недавно перестроил свою 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 }
}
Из командной строки с повышенными правами:
- Когда запускается, скрипт не дает вывода (просто новая строка терминала). Он не возвращает ошибок и сертификат не удаляется.
- Когда аргумент
-WhatIf
добавляется вRemove-Item
команду в скрипте, снова никаких ошибок и сертификат не удаляется. - Когда выполняется Remove-Item. \ CERTIFICATE-THUMBPRINT -Force, сертификат удаляется.
Это проблема с разрешениями? Есть ли более умный / простой способ сделать это?
Спасибо!
write-host
чтобы вывести что-то на экран, если условное условие истинно. Мне интересно, если сценарий оценивается как ложный (объяснил бы без ошибок и бездействия).
Remove-Item -Force
?
remove-item -whatif
??