最近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
コマンドに引数を追加しても、エラーは発生せず、証明書は削除されません。 - Remove-Item。\ CERTIFICATE-THUMBPRINT -Forceが実行されると、証明書が削除されます。
これは権限の問題ですか?これを行うためのよりスマートで簡単な方法はありますか?
ありがとう!
@BigHomie。はい、試しました。編集でその情報を削除したようです...
—
Byron C. 14
条件付きコードブロックにを追加して
—
Colyn1337 2014
write-host
、条件がtrueの場合に画面に何かをダンプします。スクリプトがfalseと評価されているかどうか疑問に思っています(エラーなしとアクションなしを説明します)。
@ Colyn1337うん。Trueを評価しています。
—
Byron C.
@ByronC。コードブロックがちょうどある場合はどうなり
—
Colyn1337 2014
Remove-Item -Force
ますか?
remove-item -whatif
か?