2010-10-23 46 views
1

J'essaie de comprendre, comment créer un inventaire matériel/rapport sur Windows 7, y compris:pilote Windows matériel/périphérique rapport/inventaire

  • Tous les périphériques/connectés à un système.
  • Driver/informations sur le périphérique par appareil (type de périphérique, Fabricant, Version du pilote, Date du pilote, fournisseur du pilote, les fichiers pilotes, matériel Ids)
    • Si les pilotes sont signés numériquement (WHQL)/a une signature valide

J'ai trouvé cet article. http://www.codeproject.com/KB/system/SimpleSetup.aspx celui-ci est une application C++ - je devrais le convertir. http://www.codeproject.com/KB/cs/EverythingInWmi03.aspx - celui-ci est basé sur WMI (Windows Management Instrumentation)

Fondamentalement, ces liens ont beaucoup aidé, mais les deux ne fournissent pas une solution complète. J'ai commencé avec l'approche WMI et réalisé, que de cette façon je ne reçois pas toutes les informations nécessaires .. en particulier l'information 'isDriverDigitallySigned' est très important. j'ai vu des articles où ils mentionnent que vérifier si un pilote de périphérique est signé peut ou non numérique être vérifier en récupérant un certificat x509 comme:

  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()); 
      } 
     } 

mais Snipped ne fonctionnait pas - sur aucun des Fichiers .sys un certificat peut être 'extrait' (CreateFromSignedFile)

Je code en C#.

L'aide est appréciée.

Répondre

0

Quelle classe WMI utilisez-vous pour énumérer les pilotes? Win32_PnPSignedDriver a une propriété nommée 'IsSigned'.

+0

Merci, je sais à propos de cette classe et la propriété. J'ai essayé et j'essaie toujours de trouver un moyen, d'énumérer tous les pilotes comme DevCon dp_enum et SigVerif.exe et Verifier.exe - le tout dans un code/solution. Et j'essaie toujours de trouver des informations à ce sujet en particulier .. –