2010-10-23 53 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