加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

如何检测Windows机箱上是否安装了特定证书?

发布时间:2020-12-14 00:35:41 所属栏目:Windows 来源:网络整理
导读:特定应用程序部署的前提条件是,在安装之前,我们需要在PC的 Windows Trusted Publishers证书库中安装特定的PKI证书. 有没有办法检测是否已经安装了特定的证书?理想情况下使用单线程命令或短脚本(可用于预先请求检测,或作为SCCM 2012中的依赖性检查)? 似乎有
特定应用程序部署的前提条件是,在安装之前,我们需要在PC的 Windows Trusted Publishers证书库中安装特定的PKI证书.

有没有办法检测是否已经安装了特定的证书?理想情况下使用单线程命令或短脚本(可用于预先请求检测,或作为SCCM 2012中的依赖性检查)?

似乎有很多命令和脚本用于列出所有已安装的证书,或者所有已安装的证书即将到期,但我无法确定是否已安装某个特定证书.

使用PowerShell单线程可以实现这一点,您只需要一种简单的方法来识别该证书(我使用的是证书的ThumbPrint).

如果您已经拥有一台已知安装了证书的已知机器(通过使用certmgr.msc进行交互式检查的最简单方法),那么您可以使用该机器查找证书的指纹.

以下PowerShell命令将列出本地计算机上下文中Trusted Publisher存储中安装的所有证书:

Get-ChildItem -Path Cert:LocalMachineTrustedPublisher

显然,可以修改上面的路径,列出其他证书库,或者您可以使用以下命令查看(长列表)所有本地安装的证书:

Get-ChildItem -Path Cert: -Recurse

第一个命令应该给你一个像这样的输出:

PS C:&; Get-ChildItem -Path Cert:LocalMachineTrustedPublisher


    Directory:
    Microsoft.PowerShell.SecurityCertificate::LocalMachineTrustedPublisher


Thumbprint                                Subject
----------                                -------
83EDC96EC3D55125EFFC77BC815F9133E268D5EB  CN="User,Test",OU=Testing Resources...
4DFF713712084D43DE6879C689F9A143C4A793BF  CN=Server One Self-signed

一旦找到了您正在寻找的证书的指纹,您就可以使用它来过滤结果,如下所示:

Get-ChildItem -Path Cert:LocalMachineTrustedPublisher | Where-Object {$_.Thumbprint -eq "83EDC96EC3D55125EFFC77BC815F9133E268D5EB"}

如果安装了证书,那应该返回证书的详细信息,如果没有,则返回任何内容.在其他用途??中,此Powershell单线程可用作SCCM 2012应用程序中的自定义脚本检测方法.

(使用的资源:Use PowerShell to Find Certificates that are About to Expire | PowerTip: Use PowerShell to Discover Certificate Thumbprints | Using the Where-Object Cmdlet)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读