我想知道是否有一个命令可以列出在. exe属性的数字签名部分中可以找到的信息。特别是我想能够获取签名者的名称。是否有一个命令可以为我生成该信息?
osh3o9ms1#
要从用于创建Authenticode签名的签名者证书中获取使用者名称,可以使用Get-AuthenticodeSignature:
Get-AuthenticodeSignature
PS > $asig = Get-AuthenticodeSignature 'C:\Windows\System32\xcopy.exe' PS > $asig.SignerCertificate.Subject CN=Microsoft Windows, O=Microsoft Corporation, L=Redmond, S=Washington, C=US
您可能对通用名(CN)感兴趣,也可能对组织名(O)感兴趣。您可以将可分辨名称从主题解析为其组成部分,以获得通用名:
PS > $asig = Get-AuthenticodeSignature 'C:\Windows\System32\xcopy.exe' PS > $dnDict = ($asig.SignerCertificate.Subject -split ', ') | foreach ` { $dnDict = @{} } ` { $item = $_.Split('='); $dnDict[$item[0]] = $item[1] } ` { $dnDict } PS > $dnDict['CN'] Microsoft Windows PS > $dnDict['O'] Microsoft Corporation
mrwjdhj32#
微软的Windows Sysinternals的Sigcheck tool可以转储信息,使用-c命令行选项可以将输出格式化为csv格式,该格式可以通过管道传输到文件以供以后处理。Sigcheck是一个命令行实用程序,它显示文件版本号、时间戳信息和数字签名详细信息,包括证书链。
-c
k10s72fa3#
尝试signtool.exe。使用以下关于signtool的参考,https://msdn.microsoft.com/en-us/library/windows/desktop/aa387764(v=vs.85).aspx
signtool.exe
v2g6jxz64#
这是控制台上的输出:
writeln(GETDOSOutput('powershell write-host =(Get-AuthenticodeSignature ''C:\Program Files\Streaming\maxbox4\maXbox4.exe'').SignerCertificate.Subject', 'C:\'));
4条答案
按热度按时间osh3o9ms1#
要从用于创建Authenticode签名的签名者证书中获取使用者名称,可以使用
Get-AuthenticodeSignature
:您可能对通用名(CN)感兴趣,也可能对组织名(O)感兴趣。您可以将可分辨名称从主题解析为其组成部分,以获得通用名:
mrwjdhj32#
微软的Windows Sysinternals的Sigcheck tool可以转储信息,使用
-c
命令行选项可以将输出格式化为csv格式,该格式可以通过管道传输到文件以供以后处理。Sigcheck是一个命令行实用程序,它显示文件版本号、时间戳信息和数字签名详细信息,包括证书链。
k10s72fa3#
尝试
signtool.exe
。使用以下关于signtool的参考,https://msdn.microsoft.com/en-us/library/windows/desktop/aa387764(v=vs.85).aspx
v2g6jxz64#
这是控制台上的输出: