Win XP - alle Netzwerkadapter und Adressen auslesen ohne WMI

  • Hallo zusammen,

    ich hoffe das dieses Thema auch hier her passt, falls nicht bitte nicht prügeln ^^

    Folgendes ich habe ein Script, welches Netzwerkparameter ausließt und dann anzeigt sowie änderbar macht.

    Das funktioniert auch super auf Windows 10, jedoch benötige ich dieses auch auf Windows XP.

    Hier (unter WinXP) erhalte ich nun den Fehler Error: Subscript used on non.accessible variable

    Hier der dazugehörige Code nachdem ich es mit AuStripper compiliert habe.

    Den Fehler erhalte ich im Code in der 4.Zeile.

    bin noch sehr neu in der Thematik und bräuchte hier tatkräftige Hilfe ^^


    Danke im Voraus

    Grüße

    Bebbo

  • Hier der dazugehörige Code nachdem ich es mit AuStripper compiliert habe.

    Das kann nicht der komplette Code sein, und würde so auch nicht unter Win10 laufen.

    Abgesehen von anderen Dingen fehlen z.B. Includes, wie z.B. #include <GuiIPAddress.au3>.

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Guten Morgen Musashi,

    danke für deine Antwort.

    Nein, das ist natürlich nicht der komplette Code des Skripts.

    Es handelt sich hier nur um den Ausschnitt, bei welchem der Fehler kommt.

    Ich dachte dieser Teil würde ausreichen.

    anbei der Komplette Code:

    Hier ist es dann ab Zeile 508.

    Danke und Grüße

    Ben

  • Pack mal an den Anfang des Skriptes Opt('MustDeclareVars', 1) und danach #AutoIt3Wrapper_Au3Check_Parameters=-q -d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -w 7

    Dann arbeitest du die Fehlermeldungen mal durch.

    Ich hoffe die fehlende Formatierung /Einrückung ist beim copy/paste passiert? Der Code ist so nicht lesbar.

  • anbei der Komplette Code:

    Du solltest nicht die benutzten Funktionen aus den UDFs herauskopieren und in Dein Script einfügen, sondern mit "Include" arbeiten.

    Ich habe Dein Script mal dahingehend angepasst (und mit Tidy formatiert):

  • Bebbo
    Ich sehe auf den ersten Blick nicht was dein Code mit dem ursprünglichen Thema zu tun hat?

    Wenn wäre der Code interessanter den du dem AuStripper zur Verfügung stellst.

    Sprich den den du geschrieben hast.

    Echt WINDOWS XP ? Ich hoffe das ist kein öffentlich zugängliches Netzwerk!

    Moombas

    Zitat

    Ich hoffe die fehlende Formatierung /Einrückung ist beim copy/paste passiert? Der Code ist so nicht lesbar.

    Für diesen Fall eignet sich sehr gut "Tidy AutoIT Source" ;)

    If not :?: then ?( else :thumbup:

  • Hallo Oscar,

    vielen Dank für deine Mühe und den bereitgestellten Code.

    Diesen hätte ich auch gehabt, wusste jetzt nur nicht (da neu) ob ich diesen Code hätte bereitstellen sollen...

    Ich habe den Ursprünglichen Code mit dem Stripper durchlaufen lassen um mir den Fehler, welchen ich beim ausführen unter WinXP erhalten habe nachvollziehen zu können.

    mfg Bebbo

  • Hallo @ Concara,

    danke für deine Tip.

    Habe nun festgestellt, das ein paar meiner Variablen wie auch schon Oscar gepostet hat, nicht deklariert waren.

    Dies habe ich nun entsprechend angepasst.

    Und nun auch festgestellt, dass unter meiner verwendeten XP Version WMI nicht funktioniert.

    Zu deiner Frage wegen Xp, ja leider benötige ich es dafür und ja es handelt sich um geschlossene Systeme.

    Ich versuche hier ein script zu schreiben, welches mir alle Adapter Namen und zugehörigen Adressen ausliest.

    Nach Auswahl des Adapters soll dann eine von mir definierte Adresse verwendet werden nebst Gateway und Subnetmask.

    Vllt. habt ihr mir einen Tip oder sogar ein beispiel, bei dem ein solches Thema bereits thematisiert wurde?!

    Danke vorab für eure Hilfe.

    Grüße

    Bebbo

  • Vllt. habt ihr mir einen Tip oder sogar ein beispiel, bei dem ein solches Thema bereits thematisiert wurde?!

    Hier ein Skript von mir aus dem Jahr 2014. Könnte also unter XP laufen:

    EDIT:

    Ich lese gerade, dass WMI gar nicht funktioniert! Wie denn das? - OK, dann nützt das dir leider nichts.

    EDIT 2:

    Falls dein XP den Befehl netsh kennt, bekommst du eine wunderbare Auflistung der Adapter mit Eigenschaften per Kommandozeilenaufruf:

    netsh interface ipv4 show config

    Das kannst du mit AutoIt per Run aufrufen und im Hintergrund die Ausgabewerte auslesen (StdoutRead()).

    EDIT 3:

    Schon viel zu lange nicht mehr verwendet, aber das funktioniert definitiv auf XP: ipconfig /all. Da hast du alles, was dein Herz begehrt. 8o

  • BugFix 25. Mai 2023 um 11:53

    Hat das Label [ offen ] hinzugefügt.
  • Probiere mal das folgende Skript (gemäß den Tipps von BugFix ) :

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Alternativ mit Umleiten in eine Temp-Datei und Auswerten darüber:

    EDIT:

    kleinen Fehler im Code gefixed.

  • Hi

    Hier noch eine Variante per Registry.

    Werte sind hier allerdings nicht so leicht zu verändern, selbst als Administrator, geschweige denn diese dann auch im laufenden Betrieb zu übernehmen.

    Es ist für die Commandline.

    Wenn man es kompiliert hat ist der Aufruf:

    Network_Driver_Settings_read.exe PCNAME

    If not :?: then ?( else :thumbup:

    Einmal editiert, zuletzt von Concara (26. Mai 2023 um 12:45)