Windows硬件/设备驱动程序报告/库存

时间:2010-10-23 09:26:24

标签: c# hardware wmi device-driver inventory

我想知道如何在Windows 7上创建硬件清单/报告,包括:

  • 系统中/附加的所有设备。
  • 每台设备的驱动程序/设备信息(设备类型,制造商,驱动程序版本,驱动程序日期,驱动程序提供程序,驱动程序文件,硬件ID)
    • 如果驱动程序经过数字签名(WHQL)/具有有效签名

我发现了这篇文章。 http://www.codeproject.com/KB/system/SimpleSetup.aspx这是一个C ++应用程序 - 我必须转换它。 http://www.codeproject.com/KB/cs/EverythingInWmi03.aspx - 这个基于WMI(Windows Management Instrumentation)

基本上这些链接有很多帮助,但两者都没有提供完整的解决方案。我开始使用WMI方法并意识到,这种方式我没有获得所有必要的信息。特别是'isDriverDigitallySigned'信息非常重要。 我看过他们提到的文章,检查设备驱动程序是否经过数字签名可以通过检索x509证书进行检查,如:

           X509Certificate xcert = null;
        try
        {
            var d = new DirectoryInfo(@"c:\windows\system32\drivers");
            FileInfo[] allFiles = d.GetFiles();
            foreach (FileInfo f in allFiles)
            {
                xcert = X509Certificate.CreateFromSignedFile(f.Name);
                Console.WriteLine(f.Name + "\t" + xcert.GetName() + "\t" +
                                  xcert.GetPublicKeyString());
            }
        }

但是剪切不起作用 - 没有任何.sys文件可以“提取”证书(CreateFromSignedFile)

我在C#编码。

帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

您使用什么WMI类来枚举驱动程序? Win32_PnPSignedDriver有一个名为'IsSigned'的属性。