我最近重新构建了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。是的,我尝试过。我似乎已在编辑中删除了该信息...
—
拜伦·C
write-host
如果条件为true ,则在您的条件代码块中添加a 在屏幕上转储某些内容。我想知道脚本是否被评估为假(将解释无错误且无操作)。
@ Colyn1337是的。它评估为True。
—
拜伦C.
@ByronC。如果代码块是公正的,会发生什么
—
Colyn1337 2014年
Remove-Item -Force
?
remove-item -whatif
吗?