AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 589481
Accepted
GAThrawn
GAThrawn
Asked: 2014-04-17 07:47:30 +0800 CST2014-04-17 07:47:30 +0800 CST 2014-04-17 07:47:30 +0800 CST

如何检测特定证书是否已安装在 Windows 机器上?

  • 772

特定应用程序部署的先决条件是,在安装之前,我们需要在 PC 的 Windows 受信任的发布者证书存储中安装特定的 PKI 证书。

有什么方法可以检测是否已经安装了特定的证书?理想情况下使用单行命令或短脚本(可用于 pre-req 检测,或作为 SCCM 2012 中的依赖项检查)?

那里似乎有很多命令和脚本可以列出所有已安装的证书,或者所有已安装的证书即将到期,但我看不到任何东西来确定是否安装了一个特定的证书。

windows
  • 1 1 个回答
  • 40464 Views

1 个回答

  • Voted
  1. Best Answer
    GAThrawn
    2014-04-17T07:47:30+08:002014-04-17T07:47:30+08:00

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

    如果您已经有一台已知的机器,并且您知道肯定安装了证书(交互检查的最简单方法是使用certmgr.msc),那么您可以使用该机器来查找证书的指纹。

    以下 PowerShell 命令将列出本地计算机上下文中受信任的发布者存储中安装的所有证书:

    Get-ChildItem -Path Cert:\LocalMachine\TrustedPublisher
    

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

    Get-ChildItem -Path Cert: -Recurse
    

    第一个命令应该为您提供如下输出:

    PS C:\> Get-ChildItem -Path Cert:\LocalMachine\TrustedPublisher
    
    
        Directory:
        Microsoft.PowerShell.Security\Certificate::LocalMachine\TrustedPublisher
    
    
    Thumbprint                                Subject
    ----------                                -------
    83EDC96EC3D55125EFFC77BC815F9133E268D5EB  CN="User, Test", OU=Testing Resources...
    4DFF713712084D43DE6879C689F9A143C4A793BF  CN=Server One Self-signed
    

    找到所需证书的指纹后,您可以使用它来过滤结果,如下所示:

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

    如果已安装,则应返回证书的详细信息,否则将返回任何内容。除其他用途外,此 Powershell 单线可用作 SCCM 2012 应用程序中的自定义脚本检测方法。

    (使用的资源:使用 PowerShell 查找即将过期的证书| PowerTip:使用 PowerShell 发现证书指纹| 使用 Where-Object Cmdlet)

    • 15

相关问题

  • 知道任何适用于 Windows 的快速可编写脚本的 ftp 客户端吗?[关闭]

  • 如果 Windows 服务崩溃,如何自动重新启动它?

  • 无法安排任务(访问被拒绝)

  • 物理机重启时自动重启虚拟机(VMWare)

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve