有一个相当于Sigverif.exe的命令行吗?

Windows XP的sigverif工具是非常有用的识别未签署的可执行文件,但似乎不适合脚本 – 是否有一个相当的命令行?

我不认为有直接的命令行相当于,但有几件事可以让你接近。

首先, driverquery.exe有一个参数/si会告诉你驱动程序的签名状态。 它也有一个参数/fo csv将转储输出到CSV。 使用此命令的怪异部分是,如果使用/si参数,则无法获取驱动程序文件的完整path(如果使用/v选项获取完整path,则无法获取签署的状态。

其次,如果您想要使用PowerShellpath,则可以使用Get-AuthenicodeSignature cmdlet。 这一点很奇怪,因为您必须将驱动程序path传递到cmdlet,因此您需要自己构build驱动程序列表。 你可以从WMI那里获得,所以这样的东西可能适合你的需要:

 Get-WmiObject -class win32_systemdriver | foreach-object { get-authenticodesignature $_.pathname } 

我用sysinternals sigcheck.exe:

http://technet.microsoft.com/en-us/sysinternals/bb897441.aspx


Sigcheck v1.66 – 文件版本和签名查看器Copyright(C)2004-2010 Mark Russinovich Sysinternals – http://www.sysinternals.com

用法:sigcheck [-a] [ – h] [ – i] [ – e] [ – n] [[ – s] | [-v] | [-m]] [ – q] [ – r] [ – u ] [ – c目录文件]

-a显示扩展版本信息

-c在指定的目录文件中查找签名

-e仅扫描可执行映像(不pipe其扩展名)

-h显示文件散列

-i显示目录名称和图像签名者

-m转储清单

-n只显示文件版本号

-q安静(没有横幅)

-r检查证书吊销

-srecursion子目录

-u仅显示未签名的文件

-v Csv输出


示例输出:

C:\ WINDOWS \ SYSTEM32 \ acledit.dll:

  Verified: Signed Signing date: 19:07 04/13/2008 Publisher: Microsoft Corporation Description: Access Control List Editor Product: Microsoft« Windows« Operating System Version: 5.1.2600.0 File version: 5.1.2600.0 (xpclient.010817-1148) 

我没有尝试过,但我相信signtool有一个命令行选项来validation签名。