2017-09-07 23 views
1

Gibt es ein C# -Äquivalent? Ich habe versucht, WMI zu verwenden und "Windows Defender" unabhängig von dem installierten WMI-kompatiblen AntiVirus einfach zu erhalten.Ich brauche eine bessere Möglichkeit, installierte Antivirenprogramme abzufragen. So etwas in C# Vielleicht?

Ich möchte einfach diese Ergebnisse in einem Textfeld anzeigen.

WMIC /Node:localhost /Namespace:\\root\SecurityCenter2 Path AntiVirusProduct   Get displayName /Format:List 

Wenn ich den Code oben verwende, bekomme ich den tatsächlichen Namen meines AntiVirus.

Antwort

1

Sie können eine Referenz zu System.Management hinzufügen. Dann können Sie mit ManagementObjectSearcher eine WMI-Abfrage ausführen.

Um installierte Antivirenprogramme zu finden, sollten Sie in SecurityCenter2 suchen. Zum Beispiel:

var path = string.Format(@"\\{0}\root\SecurityCenter2", Environment.MachineName); 
var searcher = new ManagementObjectSearcher(path, "SELECT * FROM AntivirusProduct"); 
var instances = searcher.Get().Cast<ManagementObject>() 
         .Select(x => (string)x.GetPropertyValue("displayName")) 
         .ToList(); 

Anmerkung 1: für Windows XP, Suche in SecurityCenter.

Anmerkung 2: können Sie lesen auch andere Eigenschaften des AntiVirusProduct:

  • displayName: string
  • instanceGuid: string
  • pathToSignedProductExe: string
  • pathToSignedReportingExe: string
  • productState: UInt32. (Informationen darüber, wie Sie den Status zu analysieren, werfen Sie einen Blick auf this post.)
  • timestamp: string
+0

wie kann ich das Ergebnis in eine Textbox parsen? Ich hatte dieses Problem mit den WMIC-Ergebnissen auch und kann mich nicht erinnern, wie ich es reparierte lol –

+1

Das Anzeigen einer 'List ' in 'TextBox' ist keine gute Idee und es ist besser, es in einer' ListBox' zum Beispiel zu zeigen, indem Sie ' listBox1.DataSource = Instanzen; '. Wenn Sie in 'TextBox' anzeigen möchten, können Sie' textBox1.Text = string.Join (Environment.NewLine, instances); 'verwenden. –

+0

omg Ich bin so beschämt, du hast vollkommen recht. Ich benutzte eine für jede Anweisung, um das gesamte Ergebnis abzufragen und in eine Listbox zu posten ... –

Verwandte Themen