2010-10-23 51 views
1

我想弄清楚,如何建立在Windows 7硬件清单/报告,其中包括:的Windows硬件/设备驱动程序报告/库存

  • 在/连接到系统的所有设备。每台设备(设备类型,制造商,驱动程序版本驱动程序日期,驱动程序提供程序,驱动程序文件,硬件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#编码。

帮助表示赞赏。

回答

0

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

+0

谢谢,我知道这个类和属性。我尝试过,并且仍在试图找到一种方法,列举DevCon dp_enum和SigVerif.exe以及Verifier.exe等所有驱动程序 - 全都在一个代码/解决方案中。而且我仍然试图找到有关这方面的信息。 – 2010-10-29 06:56:11