Variable

  • Guten Morgen,

    ich möchte per WMI von einem bestimmten IP Bereich div. Infos auslesen, jedoch habe ich Probleme mit der IP Variable:

    [autoit]

    For $ip1 = 90 To 94 Step +1
    For $ip2 = 35 To 254 Step +1

    $ip3 = "192.168." & $ip1 & "." & $ip2 ;diese Konstruktion funktioniert nicht

    $ip3 = "10.164.90.35" ;diese Konstruktion funktioniert

    [/autoit][autoit][/autoit][autoit]

    Local $wmi_obj = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\" & $ip3 & "\root\WMI")
    If IsObj($wmi_obj) = 1 Then
    MsgBox(4096, "Juhuuuu", "Test erfolgreich", 10)
    EndIf
    Next
    Next

    [/autoit]

    Ich bräuchte somit Hilfe wie ich die Variable $ip3 richtig definiere.

    Vielen Danke!

  • Funktioniert bei mir einwandfrei!
    Die Frage ist, was du erwartest. Bei mir dauert deine Abfrage im Fall einer nicht erreichbaren Adresse 25 Sekunden.

  • $wmi_obj liefert bei mir einfach nichts zurück, wenn ich die IP zusammenbauen lasse.,
    $ip3 = "192.168." & $ip1 & "." & $ip2

    Das der Timeout Problem ist mit bewusst und in diesem Falle völlig egal, da die Zeit vorhanden ist.

    Einmal editiert, zuletzt von Lausbube (19. November 2014 um 09:16)

  • $wmi_obj liefert bei mir einfach nichts zurück

    Was heisst "nichts"?
    Ich erhalte im Fall einer nicht erreichbaren Adresse kein Objekt zurück, im Fall einer erreichbaren Adresse ein Objekt.

    [autoit]

    $flag = 1
    For $ip1 = 90 To 94 Step +1
    For $ip2 = 35 To 254 Step +1
    $flag = Not $flag
    If $flag Then
    $ip3 = "192.168." & $ip1 & "." & $ip2
    Else
    $ip3 = @IPAddress1
    EndIf
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $ip3 = ' & $ip3 & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console

    [/autoit][autoit][/autoit][autoit]

    Local $wmi_obj = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\" & $ip3 & "\root\WMI")
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $wmi_obj = ' & $wmi_obj & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
    If IsObj($wmi_obj) = 1 Then
    MsgBox(4096, "Juhuuuu", "Test erfolgreich " & $ip3, 1)
    Else
    MsgBox(0, 0, "Adresse " & $ip3 & " ist nicht erreichbar!", 1)
    EndIf

    [/autoit][autoit][/autoit][autoit]

    Next
    Next

    [/autoit][autoit][/autoit][autoit][/autoit]
  • Folgende Aufbau funktioniert:

    [autoit]


    $ip3 = String("10.164.90.35")
    Local $wmi_obj = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\" & $ip3 & "\root\WMI")
    If IsObj($wmi_obj) = 1 Then
    MsgBox(4096, "Juhuuuu", "Test erfolgreich", 10)
    EndIf

    [/autoit]

    Folgender Aufbau funktioniert nicht (liefert kein Obj)

    [autoit]


    $ip1 = "90"
    $ip2 = "35"
    $ip3 = "192.168." & $ip1 & "." & $ip2
    Local $wmi_obj = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\" & $ip3 & "\root\WMI")
    If IsObj($wmi_obj) = 1 Then
    MsgBox(4096, "Juhuuuu", "Test erfolgreich", 10)
    EndIf

    [/autoit]