1

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#でコーディングしています。

助けていただければ幸いです。

4

1 に答える 1

0

ドライバーの列挙に使用している WMI クラスは何ですか? Win32_PnPSignedDriver には、「IsSigned」という名前のプロパティがあります。

于 2010-10-23T16:09:44.007 に答える