Freitag, 25. Juli 2014

Prüfen ob Antivirenprogramm installiert

Heute möchte ich zeigen, wie man mittels C# prüfen kann, ob ein Antivirenprogramm installiert ist. Dies tun wir durch eine WMI Abfrage, im verlinkten Post habe ich eine kleine Einleitung in dieses Thema gegeben.
Der hierfür benötigte Pfad lautet root/SecurityCenter2/AntiVirusProduct, die Anfrage gibt uns dann für jedes installierte Antivirus Produkt ein Objekt zurück mit einigen Attributen, unter anderem natürlich Name, Produktstatus, Pfad zur .exe und Datum (displayName, productState, pathToSignedProductExe und timestamp).
In dem oben verlinkten Post habe ich auch über den WMI Object Browser geschrieben, mit welchem sich die WMI durchsuchen lässt und welcher die Bedeutung einiger Attribute erklärt. Für die hier verwendete Klasse findet sich leider keine Erklärung, auch sonst findet sich online leider nur wenig. So weiß ich zum Beispiel nicht, was timestamp aussagen soll, über die Bedeutung des productState gibt es hier eine nette Theorie. Über Hinweise und Erklärungen würde ich mich sehr freuen.
Unser Hauptziel aber, nämlich das einfache Erfragen, ob und wenn ja welche Virenscanner installiert sind, haben wir ja erreicht, der Code:
            ManagementObjectSearcher MySearcher =
               new ManagementObjectSearcher("root\\SecurityCenter2", "SELECT * FROM " + "AntiVirusProduct");

            string Result = "";

            foreach (ManagementObject queryObj in MySearcher.Get())
            {
                Result += "New Product:" + Environment.NewLine;
                foreach (PropertyData propertyData in queryObj.Properties)
                {
                    Result += propertyData.Name.ToString() + ":" + propertyData.Value.ToString() + Environment.NewLine;
                }
            }

Keine Kommentare:

Kommentar veröffentlichen