vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik:    |   VB-Versionen: VB601.06.12
Ist ein Antiviren-Programm installiert und wenn ja, welches?

Mittels WMI lässt sich sehr schnell ermitteln, ob und wenn ja, welches Antiviren-Programm auf dem System installiert ist.

Autor:  Dieter OtterBewertung:     [ Jetzt bewerten ]Views:  1.733 
http://www.tools4vb.de/System:  Win7, Win8, Win10, Win11 Beispielprojekt 

Nachfolgende Funktion ermittelt mit Hife der WMI-Schnittstelle von Windows, ob auf dem System ein Antiviren-Programm eingesetzt wird und gibt zudem noch Produktnamen zurück.

Sollte mehr als ein AV Programm installiert sein, werden die Produktnamen mit einem Semikolon getrennt zurückgegeben.

' Ermittelt das auf dem System verwendete Antiviren-Programm
Public Function GetAVApp() As String
  Dim oWMI As Object
  Dim SQL As String
  Dim oAV As Object
  Dim sAVList As String
 
  ' Fehlerbehandlung (falls kein WMI vorhanden oder kein Zugriff)
  On Error GoTo ErrHandler
 
  ' Abfrage
  SQL = "SELECT * FROM AntiVirusProduct"
 
  ' WMI-Objekt erstellen und Abfrage ausführen
  Set oWMI = GetObject("winmgmts:root\SecurityCenter2").ExecQuery(SQL)
 
  ' Ergebnisliste durchlaufen und AV-Namen ermitteln
  If Not oWMI Is Nothing Then
    For Each oAV In oWMI
      ' falles mehr als 1 Antiviren-Programm installiert ist,
      ' diese durch ein Semikolon voneinander trennen
      If Len(sAVList) > 0 Then sAVList = sAVList & ";"
      sAVList = sAVList & oAV.DisplayName
    Next
  End If
 
  ' Objekte zerstören
  Set oAV = Nothing
  Set oWMI = Nothing
 
  GetAVApp = sAVList
  Exit Function
 
ErrHandler:
  ' Fehler
  GetAVApp = ""
End Function

Aufrufbeispiel:

Dim sAVList As String
sAVList = GetAVApp()
If Len(sAVList) > 0 Then
  If InStr(sAVList,";") > 0 Then
    ' mehrere AV-Produkte
    MsgBox "Auf dem System sind folgende AV-Programme installiert:" & vbCrLf & _
      Replace(sAVList, ";", vbCrLf)
 
  Else
    ' 1 AV Produkt
    MsgBox "Auf dem System ist folgendes AV-Programm installiert:" & vbCrLf & sAVList
  End If
Else
  ' kein AV-Produkt gefunden
  MsgBox "Es konnte kein AV-Produkt ermittelt werden!"
End If