Powershell 使用变量导入证书

Powershell 使用变量导入证书,powershell,certificate,x509certificate,windows-server,Powershell,Certificate,X509certificate,Windows Server,我有一个脚本,一开始我将证书存储到一个变量,如下所示: $ToRemove=Get ChildItem-路径证书:\LocalMachine\My |?(条件) $CertsInStore=Get ChildItem-路径证书:\LocalMachine\My 然后我有foreach循环来删除所选证书。稍后在脚本中,我将测试某些情况,如果出现错误,我将返回删除的证书。这样行吗 导入证书$ToRemove-CertStoreLocation证书:\LocalMachine\My 还是我必须用另一种

我有一个脚本,一开始我将证书存储到一个变量,如下所示:

$ToRemove=Get ChildItem-路径证书:\LocalMachine\My |?(条件)

$CertsInStore=Get ChildItem-路径证书:\LocalMachine\My

然后我有foreach循环来删除所选证书。稍后在脚本中,我将测试某些情况,如果出现错误,我将返回删除的证书。这样行吗

导入证书$ToRemove-CertStoreLocation证书:\LocalMachine\My


还是我必须用另一种方式?如何操作?如果是这样的话?

您应该在删除任何内容之前检查所有条件。这比重新导入已删除的证书要好得多。不幸的是,这是不可能的。我需要删除所有以DNS名称为主题的证书,用于客户端身份验证、服务器身份验证,然后使用这些参数导入一个新的证书,如果由于某种原因失败,则返回原始状态。此外,我还需要确保,没有DNS名称作为主题的证书用于其他目的。因此,首先我删除满足主题和目的条件的证书,然后检查是否有其他与主题相关的证书。如果有,我需要导入已删除的证书并退出脚本。这只是关于算法。您可以先导入新证书,然后从不需要的证书(不包括新安装的证书)中执行存储清理。我该怎么做?如何识别新导入的证书并将其从删除中排除?