IP Adresse auslesen bei System mit mehr aks 5 Adaptern

  • Hallo,

    folgendes Scenario:

    - Notebooks mit eventuell mehr als 4 Netzwerkadaptern.
    - Einwahl per UMTS ins VPN
    - RDP (Port:3389) ist freigeschaltet

    Um einen Support zu gewährleisten muss ich den Anwendern eine Funktion zu Verfügung stellen mit denen Sie ohne Adminrechte die IP Adresse herausfinden lassen.

    Folgendes Script habe ich aufgesetzt:


    [autoit]


    RunAsSet("User",@Computername,"Pass")
    #include <constants.au3>

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

    $a = Run(@ComSpec & ' /c ipconfig /all | find "20.23.22"', "", @SW_SHOW, $STDERR_CHILD + $STDOUT_CHILD)
    $bool="0"
    While 1
    $b = StdoutRead($a)
    If @error Then
    if $bool = "0" then msgbox(0,"Fehler","Keine Verbindung zur mobilen Einwahlinfrastruktur")
    ExitLoop
    endif
    $bool=MsgBox(0, @ComputerName, $b)
    Wend

    RunAsSet()
    $b = StdoutRead($a)
    $bool=MsgBox(0, @ComputerName, $b)

    [/autoit]

    Das Script funktioniert wenn ich kein runasset benutze, aber ohne admin rechte kann ich das ja nicht ausführen.

    Ich habe natürlich adminrechte.

    Sry wegen dem blanken Code, hab keine Aktiven Inhalte.

    Jemand Ideen??
    Danke und Gruß

    Admin-Edit: autoit tags statt code tags gesetzt - Gun-Food

    2 Mal editiert, zuletzt von ichrootdunix (21. August 2007 um 17:13)

  • Ja klar ich hab ja auch ipconfig/all benutzt und hole mir mit "find" die Zeile wo die Netzwerkadresse steht heraus.

    Die Netzwerkadresse ist immer gleich z.B. 20.202.30.X

    Für den "doofen" Anwender ist es halt gut wenn einfach nur ein Textfeld erscheint wo die IP Adresse dann drin steht.

    Das Script funktioniert auch soweit nur wenn ich mit "runasSet" einen Benutzer angebe, mit Admin rechten, damit der eingeschränkte Benutzer sich die IP Adresse anzeigen lassen kann, funktioniert das STDOUT nicht richtig.

    Habe es jetzt mit einer txt gelöst die danach wieder gelöscht wird, ist in meinen Augen aber nicht so schön gelöst.

    Irgendwelche Ideen wieso das Problem auftrit wenn ich runasSet verwende.

    Gruß

    Einmal editiert, zuletzt von ichrootdunix (21. August 2007 um 21:56)

  • Ja sry sind ja nicht nur die Adminrechte die Fehlen. Sind auch verschiedene Richtlinien die das verhindern.

    z.B is das Ausführen der Kommandezeilenebene deaktiviert.

  • Schon mal damit Probiert?

    #RequireAdmin
    Parameters
    None.
    Remarks
    This function was primarily aimed at allowing AutoIt scripts to work correctly with Windows Vista User Account Control (UAC) (However, will also work on Windows 2000 and Windows XP).
    For more details see AutoIt on Windows Vista.
    Related
    None.
    Example

    [autoit]

    #RequireAdmin
    MsgBox(4096,"Info","Now running with admin rights")

    [/autoit]

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

    • Offizieller Beitrag

    Hallo,

    der RunAsSet Befehl hat nur Auswirkung auf den Run-Befehl, d.h. der Run-Befehl wird zwar unter Adminrechten ausgeführt aber da danach wieder mit den normalen Rechten weitergearbeitet wird wir wohl der Zugriff auf $STDERR_CHILD und $STDOUT_CHILD fehlschlagen.

    probiers mal so:

    [autoit]

    #include <constants.au3>

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

    If Not IsAdmin() Then
    RunAsSet("User",@Computername,"Pass")
    Run(@ScriptFullPath, @ScriptDir, @SW_HIDE)
    RunAsSet()
    Exit
    EndIf

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

    $a = Run(@ComSpec & ' /c ipconfig /all | find "20.23.22"', "", @SW_SHOW, $STDERR_CHILD + $STDOUT_CHILD)
    $bool="0"
    While 1
    $b = StdoutRead($a)
    If @error Then
    if $bool = "0" then msgbox(0,"Fehler","Keine Verbindung zur mobilen Einwahlinfrastruktur")
    ExitLoop
    endif
    $bool=MsgBox(0, @ComputerName, $b)
    Wend

    $b = StdoutRead($a)
    $bool=MsgBox(0, @ComputerName, $b)

    [/autoit]

    Die If-Anweisung am Anfang sorgt dafür das das komplette Script nochmal mit Adminrechten gestartet wird wenn es von einem normalen Benutzer ausgeführt wird!

  • Moin,

    ich bedanke mich vielmals für die Hilfe. So funktioniert es.

    Problem gelöst!
    mfg