Umgebungsvariable (Batch) Envget geht nicht

  • Hi Leute,
    ich hab ein Batchscript:

    Code
    set TESTUSER=hans
    runas /user:SERVER\%user% test.exe

    meine test.exe (AutoIT):

    [autoit]


    EnvUpdate()
    $test = EnvGet ("TESTUSER")
    MsgBox(4096,"test", $test)
    $var = EnvGet("PATH")
    MsgBox(4096, "Die Pfad-Variable lautet:", $var)

    [/autoit]

    Wenn ich mein Batchscript ausführe ist "$test" immer leer und $var gibt die die %PATH% Variable aus. Ich habe es mal mit "ping 127.0.0.1 -n 10 > NUL" am Ende des Batchscripts probiert, da sobald die CMD geschlossen wird, auch meine Umgebungsvariable gelöscht wird.
    Kann mir jemand helfen, dass ich meine "TESTUSER" irgendwie in mein AutoIT Script bekomme?

    Ich möchte damit eine Useranmeldung abfragen (User muss in der Domäne sein). Ich weis irgendwie geht es auch mit diesen adfunctions. Diese hab ich aber noch nie benutzt, hab sie mir nur mal kurz angeschaut und hatte absolut keine Ahnung. Wenn es zu meinem Batch Problem keine Lösung gibt, kann mir dann jemand mit den adfunction helfen. Ich möchte nur das ein Abfrage kommt (Username und Passwort) und dann geschaut wird, ob diese mit den Daten in der AD überein stimmen.

    2 Mal editiert, zuletzt von deb10er0 (22. April 2010 um 08:49)

  • :rofl:
    hier (ich denke mal du wills den richtigen Autoit code ^^ )

    [autoit]


    $testuser = "hans"
    $program = "test.exe"
    Run("runas /user:SERVER\"&$testuser&" "&$program)

    [/autoit]

    -müsste eigentlich funktionieren... :rolleyes:

    Nur keine Hektik - das Leben ist stressig genug

  • sorry, aber schau dir bitte nochmal meine Frage an. In meinem Batchscript wird dadurch das Passwort vom Domänenuser abgefragt. Wenn ich es so mache wie du mir schreibst, dann habe ich immer den gleichen User in meinem AutoIt script stehen und das will ich ja nicht.

    Mein Batchscript wird schon noch abgeändert, so dass ich dann noch eine Abfrage nach dem Usernamen mache.

  • was wills du eig. machen? wills du dass ein fenster kommt in dem man den namen eingeben kann?
    wills du, dass du im batch-programm den namen eingibs, dass die autoit.exe öffnet wobei es den namen übergibt?
    wenn du nur batch verwenden wills dann
    => geh zur Off-Tropic !!

    wenn du testuser auslesen wills dann mach doch einfach ein

    Code
    run test.exe %testuser%


    dann guck dir mal die variable $cmdline an:

    [autoit]


    if $cmdline > 0 then
    msgbox(0,"",$cmdline[1]&" ist der testuser!")
    endif

    [/autoit]

    Nur keine Hektik - das Leben ist stressig genug

  • genau so was suche ich ($cmdline).
    Ich möchte später nur dass man im Batchscript Username und Passwort eingibt und wenn das stimmt (Domänenanmeldung) wird das AutoITscript gestartet. In meinem AutoIT script benötige ich dann später den Usernamen und das Passwort wieder. Darum brauche ich die Variablen in meinem AutoIT script wieder.

  • hallo,

    du kannst doch auch einfach mit @username den aktuellen user abfragen!

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

    if @username = "user yx" then

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

    ;mache folgendes ....
    else
    msgbox(0,"","nicht authentifiziert")
    exit

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

    endif
    ;oder so

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

    dim $array[3]
    $array[0]="webplatz"
    $array[1]="webplatz1"
    $array[2]="webplatz2"

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

    For $i = 0 To 53

    if @username = $array[$i] then
    ;mache folgendes ....

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

    else
    msgbox(0,"","nicht authentifiziert")
    exit
    endif

    Next

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

    damit kannst du dir die eingabe vom passwort und user sparen!

    gruß gmmg

    Einmal editiert, zuletzt von gmmg (22. April 2010 um 13:56)