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 |