特定应用程序部署的先决条件是,在安装之前,我们需要在 PC 的 Windows 受信任的发布者证书存储中安装特定的 PKI 证书。
有什么方法可以检测是否已经安装了特定的证书?理想情况下使用单行命令或短脚本(可用于 pre-req 检测,或作为 SCCM 2012 中的依赖项检查)?
那里似乎有很多命令和脚本可以列出所有已安装的证书,或者所有已安装的证书即将到期,但我看不到任何东西来确定是否安装了一个特定的证书。
特定应用程序部署的先决条件是,在安装之前,我们需要在 PC 的 Windows 受信任的发布者证书存储中安装特定的 PKI 证书。
有什么方法可以检测是否已经安装了特定的证书?理想情况下使用单行命令或短脚本(可用于 pre-req 检测,或作为 SCCM 2012 中的依赖项检查)?
那里似乎有很多命令和脚本可以列出所有已安装的证书,或者所有已安装的证书即将到期,但我看不到任何东西来确定是否安装了一个特定的证书。
这可以通过 PowerShell 单线实现,您只需要一种简单的方法来识别该证书(我使用的是证书的 ThumbPrint)。
如果您已经有一台已知的机器,并且您知道肯定安装了证书(交互检查的最简单方法是使用
certmgr.msc
),那么您可以使用该机器来查找证书的指纹。以下 PowerShell 命令将列出本地计算机上下文中受信任的发布者存储中安装的所有证书:
显然,可以修改上面的路径,以列出其他证书存储,或者您可以使用以下命令查看(一长串)所有本地安装的证书:
第一个命令应该为您提供如下输出:
找到所需证书的指纹后,您可以使用它来过滤结果,如下所示:
如果已安装,则应返回证书的详细信息,否则将返回任何内容。除其他用途外,此 Powershell 单线可用作 SCCM 2012 应用程序中的自定义脚本检测方法。
(使用的资源:使用 PowerShell 查找即将过期的证书| PowerTip:使用 PowerShell 发现证书指纹| 使用 Where-Object Cmdlet)