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签名。