【发布时间】:2015-03-21 23:23:42
【问题描述】:
我正在寻找一种方法,仅使用 PowerShell 来列出签名文件的证书链。专门用来获取Root证书。
因为我需要获取某些可执行文件(在已安装的软件上)所依赖的非 Microsoft 根证书的列表。这是由于使用 Microsoft KB293781 中的 PKI 过程的操作系统基线指南。只有特定的根证书应放在特定的计算机上。例如,经常使用的“VeriSign Class 3 Primary CA - G5”,只能在必要时使用。
Get-AuthenticodeSignature 仅列出颁发者。例如:Get-AuthenticodeSignature C:\windows\system32\MRT.exe
诸如“SysInternals SigCheck”之类的工具能够做到这一点sigcheck.exe -i C:\windows\System32\mrt.exe,并且可以进一步解析此信息。其他工具,如来自 Windows SDK 的 SignTool.exe 和 Didier Stevens 的 AnalyzePESig 也可以获取此信息。
但这可以仅使用 PowerShell 完成吗?也许在 Windows 中使用 WinVerifyTrust API。 https://msdn.microsoft.com/en-us/library/windows/desktop/aa382384(v=vs.85).aspx http://support2.microsoft.com/kb/323809/en-us
干杯, 泰克
【问题讨论】:
标签: powershell scripting certificate pki authenticode