Нещодавно я відновив свій 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
команди в скрипті, знову не виникає помилок і сертифікат не видаляється. - Якщо Вилучити-елемент. \ CERTIFICATE-THUMBPRINT -Force запускається, сертифікат видаляється.
Це проблема з дозволом? Чи є розумніший / простіший спосіб зробити це?
Дякую!
write-host
щоб скинути щось на екран, якщо умовне є істинним. Мені цікаво, чи сценарій оцінюється як помилковий (пояснював би відсутність помилок і жодних дій).
Remove-Item -Force
?
remove-item -whatif
??