WMI AntivirProducts

  • VB.NET

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von Gather.

    WMI AntivirProducts

    Hey, Hey

    Ich Versuche aus meine Antivir Programm Infos Auszulesen.
    Aber leider wird mir im ListView nichts Angezeigt.
    Wo Liegt der Fehler?

    VB.NET-Quellcode

    1. Public Function LocalWin32_AVP(ByVal strComputer As String) As String
    2. Dim options As ConnectionOptions
    3. options = New ConnectionOptions()
    4. Dim scope As ManagementScope
    5. scope = New ManagementScope( _
    6. "" & strComputer & "\root\SecurityCenter")
    7. scope.Connect()
    8. Dim query As ObjectQuery
    9. query = New ObjectQuery( _
    10. "SELECT * from AntiVirusProduct")
    11. Dim searcher As ManagementObjectSearcher
    12. searcher = New ManagementObjectSearcher(scope, query)
    13. Dim queryCollection As ManagementObjectCollection
    14. queryCollection = searcher.Get()
    15. Dim m As ManagementObject
    16. Dim str As String = String.Empty
    17. For Each m In queryCollection
    18. Try
    19. Me.ListView1.Items.Add("Name")
    20. Me.ListView1.Items(0).SubItems.Add(m("DisplayName").ToString)
    21. Catch ex As Exception
    22. Me.ListView1.Items.Add("Name")
    23. Me.ListView1.Items(0).SubItems.Add(m("n.a."))
    24. End Try
    25. Try
    26. Me.ListView1.Items.Add("Version")
    27. Me.ListView1.Items(1).SubItems.Add(m("VersionNumber").ToString)
    28. Catch ex As Exception
    29. Me.ListView1.Items.Add("Version")
    30. Me.ListView1.Items(1).SubItems.Add(m("n.a."))
    31. End Try
    32. Try
    33. Me.ListView1.Items.Add("Company")
    34. Me.ListView1.Items(2).SubItems.Add(m("CompanyName").ToString)
    35. Catch ex As Exception
    36. Me.ListView1.Items.Add("Company")
    37. Me.ListView1.Items(2).SubItems.Add(m("n.a."))
    38. End Try
    39. Try
    40. Me.ListView1.Items.Add("Product Upto date")
    41. Me.ListView1.Items(3).SubItems.Add(m("productUptoDate").ToString)
    42. Catch ex As Exception
    43. Me.ListView1.Items.Add("Product Upto date")
    44. Me.ListView1.Items(3).SubItems.Add(m("n.a."))
    45. End Try
    46. Try
    47. Me.ListView1.Items.Add("On Access Scanning Enabled")
    48. Me.ListView1.Items(4).SubItems.Add(m("onAccessScanningEnabled").ToString)
    49. Catch ex As Exception
    50. Me.ListView1.Items.Add("On Access Scanning Enabled")
    51. Me.ListView1.Items(4).SubItems.Add(m("n.a."))
    52. End Try
    53. Application.DoEvents()
    54. Next
    55. For Each locColumn As ColumnHeader In Me.ListView1.Columns
    56. locColumn.Width = -2
    57. Next
    58. Return "OK"
    59. End Function
    60. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    61. LocalWin32_AVP(".")
    62. End Sub


    LG
    [VB.NET] Systeminformationen mit WMI auslesen ab .NET 3.0 oder früher falls dus noch nicht kennst.
    Dennoch, ist bei mir ebenfalls der \root\SecurityCenter2 (Sowie SecurityCenter) komplett leer.
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    VB.NET-Quellcode

    1. Public Shared Function GetAntiSpyware() As Array
    2. Dim List As New List(Of String)
    3. If (Windows XP) Then
    4. Using s As New ManagementObjectSearcher("Root\SecurityCenter", "SELECT * FROM AntiSpywareProduct")
    5. For Each i As ManagementObject In s.Get()
    6. List.Add(i("displayName"))
    7. Next
    8. End Using
    9. Else (Windows Vista oder höher)
    10. Using s As New ManagementObjectSearcher("Root\SecurityCenter2", "SELECT * FROM AntiSpywareProduct")
    11. For Each i As ManagementObject In s.Get()
    12. List.Add(i("displayName"))
    13. Next
    14. End Using
    15. End If
    16. Return List.ToArray
    17. End Function
    18. Public Shared Function GetAntiVirus() As Array
    19. Dim List As New List(Of String)
    20. If (Windows XP) Then
    21. Using s As New ManagementObjectSearcher("Root\SecurityCenter", "SELECT * FROM AntiVirusProduct")
    22. For Each i As ManagementObject In s.Get()
    23. List.Add(i("displayName"))
    24. Next
    25. End Using
    26. Else (Windows Vista oder höher)
    27. Using s As New ManagementObjectSearcher("Root\SecurityCenter2", "SELECT * FROM AntiVirusProduct")
    28. For Each i As ManagementObject In s.Get()
    29. List.Add(i("displayName"))
    30. Next
    31. End Using
    32. End If
    33. Return List.ToArray
    34. End Function
    35. Public Shared Function GetFireWall() As Array
    36. Dim List As New List(Of String)
    37. If (Windows XP) Then
    38. Using s As New ManagementObjectSearcher("Root\SecurityCenter", "SELECT * FROM FirewallProduct")
    39. For Each i As ManagementObject In s.Get()
    40. List.Add(i("displayName"))
    41. Next
    42. End Using
    43. Else (Windows Vista oder höher)
    44. Using s As New ManagementObjectSearcher("Root\SecurityCenter2", "SELECT * FROM FirewallProduct")
    45. For Each i As ManagementObject In s.Get()
    46. List.Add(i("displayName"))
    47. Next
    48. End Using
    49. End If
    50. Return List.ToArray
    51. End Function
    Unter Windows 7 64bit ebenfalls.
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    Unter Windows 7 sollte das SecurityCenter2 die Daten beinhalten.
    Zumindest liefert dieser CMD-Befehl

    Quellcode

    1. WMIC /Node:localhost /Namespace:\\root\SecurityCenter2 Path AntiVirusProduct Get displayName /Format:List
    bei mir brauchbare Werte ab.

    Win8 geht da irgendeinen anderen Weg, den ich auch noch nicht kenne.
    Aber wer verwendet schon Windows 8 ;)
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    mhm interessanterweise funktioniert es via CMD bei mir auch, wenn es mir den Namespace aber mal mit dem WMI Code Creator ansehe, ist er leer.
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    @Gather
    Nimm den "WMI Code Creator" von Microsoft, und geh zum tab "Browse the namespaces on this computer"
    Bilder
    • Unbenannt.jpg

      30,68 kB, 699×364, 126 mal angesehen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Timocop“ ()

    Dennnoch ließ meinen Beitrag nochmal, bzw. schau dir mal den Link an den ich gepostet habe:
    [VB.NET] Systeminformationen mit WMI auslesen ab .NET 3.0 oder früher
    Dann siehst du auch welchen Code Creator ich benutze.
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!