windows 从.exe获取签名者名称的命令

6ioyuze2  于 2022-12-24  发布在  Windows
关注(0)|答案(4)|浏览(204)

我想知道是否有一个命令可以列出在. exe属性的数字签名部分中可以找到的信息。特别是我想能够获取签名者的名称。是否有一个命令可以为我生成该信息?

osh3o9ms

osh3o9ms1#

要从用于创建Authenticode签名的签名者证书中获取使用者名称,可以使用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
mrwjdhj3

mrwjdhj32#

微软的Windows Sysinternals的Sigcheck tool可以转储信息,使用-c命令行选项可以将输出格式化为csv格式,该格式可以通过管道传输到文件以供以后处理。
Sigcheck是一个命令行实用程序,它显示文件版本号、时间戳信息和数字签名详细信息,包括证书链。

v2g6jxz6

v2g6jxz64#

这是控制台上的输出:

writeln(GETDOSOutput('powershell write-host =(Get-AuthenticodeSignature ''C:\Program Files\Streaming\maxbox4\maXbox4.exe'').SignerCertificate.Subject', 'C:\'));

相关问题