Fehlermeldung "Das Verzeichnis ist ungültig"

  • Moin moin,

    in meinem Script möchte ich ein externes Programm starten und der .exe einige Parameter mitgeben.

    Hier das Script:
    ********************************************************
    Global $username = "Administrator"
    Global $FQDN = "domäne.dom"
    Global $Password = "unwahrscheinlicheusserstvertraulichundgeheim"

    RunAsSet($username , $FQDN, $Password)

    ; Progreamm Installation
    Run("\\meinServer\Freigabe\Verzeichnis\nocheinVerzeichnis\UserInstall\setup.exe -a -s -f1\\meinServer\Freigabe\Verzeichnis\nocheinVerzeichnisrver\UserInstall\Programm.iss -f2C:\Programm.log")
    *********************************************************

    Jetzt zu dem Problem.
    Das Script habe ich zu einer .exe compiliert und möchte es von einer Frigabe eines Servers starten. Starten funktioniert auch, nur kommt folgende Fehlermeldung:

    Autoit Error

    Error: Unable to execute thr external program.
    Der Verzeichnisname ist ungültig.

    Der Programmaufruf funktioniert mit Start--->Ausführen und hinen kopieren der oben angegebenen Zeile.

    Vielen Dank für Eure Hile im Voraus

    Constantin

  • Hallo peethebee,

    ich danke dir für die schnelle Lösungshilfe.

    Leezeichen sind nicht im Pfad
    Mit Maaping hatte ich auch schon probiert.

    Dies ist die neue Zeile.

    ShellExecute("\\Server\Freigabe\nocheine\UserInstall\setup.exe", "-a -s -f1\\\Server\Vreigabe\nocheine\UserInstall\Programm.iss -f2C:\Programm.log")

    Das Script startet, nur die Installation des Programms erfolgt nicht. Es erscheint auch keine Fehlemeldung!
    Habe ich etwas vergessen?

    Ha...
    In meiner Testumgebung (VMWare) funktioniert es nicht. Auf 2 getesteten Workstations funktioniert es!?!

    Ich gehe mal von einem erfolgreichen Test aus und werde das Script per Active Directoy verteilen (wird schon funktionieren).

    Constantin

    Einmal editiert, zuletzt von kleine_Made (31. Oktober 2007 um 15:37)

  • @kleine_Made.

    Also ich sehe in den Befehl:

    ShellExecute("\\Server\Freigabe\nocheine\UserInstall\setup.exe", "-a -s -f1\\\Server\Vreigabe\nocheine\UserInstall\Programm.iss -f2C:\Programm.log")

    zahlreiche Leerzeichen.

    Nach dem -a ist das erste Leerzeichen.

    Somit bitte peethebee Frageliste durch gehen und dann die Suchfunktion nutzen. Thema ist bereits mehrfach hier gelößt. Leider habe ich gerade keine Zeit danach zu suchen.

    Ansonsten schau Dir mal das hier an, da geht es auch um diesen Fehler.

    Gruss, Lina.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

    Einmal editiert, zuletzt von Alina (31. Oktober 2007 um 19:07)

  • hi,

    @kleine_Made
    benötigst Du wirklich den Parameter -a ? Stehen in der Antwortdatei enventuell Pfade die in der VM nicht vorhanden sind? In der Logdatei steht ja normalerweise auch noch der Errorcode, der hilft gelegentlich auch weiter ;)

  • Muß da nicht evtl. ein Leerzeichen vor: C:\Programm.log
    Bei Dir steht: -f2C:\Programm.log

    Versuche es mal so:

    ShellExecute("\\Server\Freigabe\nocheine\UserInstall\setup.exe -a -s -f1" , "\\Server\Freigabe\nocheine\UserInstall\Programm.iss - f2 C:\Programm.log")

    Zumindest von der Logik her sinnvoller. Du kannst nämlich, meine ich, nicht mit -a anfangen. Das -a bezieht sich auf etwas davor. Dann habe ich noch aus Vreigabe mal Freigabe gemacht und aus -f2C:\Programm.log habe ich -f2 C:\Programm.log gemacht.


    Gruss, Lina

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

    Einmal editiert, zuletzt von Alina (31. Oktober 2007 um 19:52)

  • Alina
    an der Stelle darf laut Definition kein Leerzeichen sein, es funktioniert aber meistens auch mit Leerzeichen ;)

    Einmal editiert, zuletzt von jonk (31. Oktober 2007 um 19:55)

  • OK, aber in seinem Bsp. waren dennoch Fehler, die er vllt. übersehen hat und wo man gerne hilft ;)

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • Moin,

    so wie ich das sehe ist es eine Silentinstallation eines InstallShield Setups.

    Probiere es mal so:

    ShellExecute("\\Server\Freigabe\nocheine\UserInstall\setup.exe", "-a -s -f1'\\\Server\Freigabe\nocheine\UserInstall\Programm.iss' -f2'C:\Programm.log'")

    Die Pfad angaben für die Parameter f1 und f2 müssen in "", bzw. '' eingefasst sein soweit ich weiss !


    Gruß
    Greenhorn


  • Hallo @All,

    ich danke euch allen für die freundliche und kompetente Hilfe.
    AutoIt habe ich jetzt seid zwei Tagen installiert und bin jetzt schon begeistert. Letztendlich liegt dies auch an der regen Beteiligung in diesem Forum.

    hallo Greenhorn,

    ja es handelt sich um eine Silentinstallation eines InstallShield Setups.

    ich konnte leider der Hilfe nicht entnehmen, ob sich die Leerzeichen auch auf die Parameterangabe bezieht, oder nur auf die Pfadangaben.

    Deine Anweisung habe ich probiert, funktioniert aber in der VM auch nicht. Auf den 2 besagten Workstations funktioniert dein Tip auch.

    Alina
    Nein die Angabe hinter F1 und F2 muss ohne Leerzeichen angegeben werden. In der Start--->Ausführen Zeile funktioniert es auch ohne Probleme und von jeder Workstation. Auch in der VM.

    Ist es möglich die Parameter mit einem & zu verküpfen und wie werden sonst Leerzeichen behandelt?

    Mange Tak
    Constantin

    • Offizieller Beitrag

    Hallo,

    der Fehler ist eigentlich ganz einfach zu erklären, RunAsSet funktionier mit ShellExecute nicht.

    Eine mögliche Lösung ist den Run-Befehl mit @ComSpec zu verwenden:

    [autoit]

    Run(@ComSpec & "/C \\meinServer\Freigabe\Verzeichnis\nocheinVerzeichnis\UserInstall\setup.exe -a -s -f1\\meinServer\Freigabe\Verzeichnis\nocheinVerzeichnisrver\UserInstall\Programm.iss -f2C:\Programm.log", "\\meinServer\Freigabe\Verzeichnis\nocheinVerzeichnis\UserInstall")

    [/autoit]

    Wenn das nicht funktioniert kann man noch das komplette Script mit RunAsSet neu starten, dann laufen alle Befehle mit Adminrechten.

    Wie z.B. hier!

  • Du versuchst das Script in einer VM (virtuellen Maschine) auszuführen ?

    Hmmm, kann es sein das es sich um eine Treiberinstallation handelt ?

    Treiber lassen sich auf virtuellen Maschinen nicht installieren! :D ;)
    Also wäre es in dem Falle kein Wunder, wenn die Ausführung der setup.exe nicht von statten geht ...


    Gruß
    Greenhorn

    p.s.: Wenn sich deine setup.iss im selben Ordner wie die setup.exe befindet kannst Du den f1 Parameter weglassen.


    Einmal editiert, zuletzt von Greenhorn (1. November 2007 um 22:04)

  • Hallo Zusammen,

    Hallo Greenhorn,

    Nein ich versuche keine Treiber zu installieren.

    Es ist ein Programm, das mit Administratorberechtigung installiert werden soll.

    ... und nebenbei ist es sehr wohl möglich Treiber in einer VM zu installieren. Drucker, USB, SCSI um nur einige zu nennen.

    @All
    Der Fehler liegt, wie bernd670 schon geschrieben hat, an der Befehlskombination RunAsSet und ShellExecute.
    Ich habe seine Lösung mit eingebaut.

    Hier seine Lösung
    Probleme beim Zugriff auf Netzfreigabe

    Constantin

    Wie kann das Thema als gelöst gemeldet werden?

    Einmal editiert, zuletzt von kleine_Made (2. November 2007 um 09:50)