AutoIt läuft nicht immer aus Netzwerk share

  • Ich habe mehrere PCs in einem LAn, die alle auf ein Freigegebenes Laufwerk von einem Server zugreifen.
    Die PCs sind Vista und 7.
    Das Script sollte eine Installation ausführen.
    Ich starte das Script per Doppelklick auf das Script.
    Bei einer Vista Maschinen startet das Script, verlangt nach Admin Privilegien (UAC) und macht normal alles wie sichs gehört.
    Bei einer Windows 7 Maschine verlangt das Script die Privilegien die man bestätigt, dann bricht es ab.
    Bei einer Vista Maschine verlangt das Script die Privilegien die man bestätigt, dann bricht es ab.
    Kopiere ich das Script zuerst auf die Lokale HD und starte dann laufen die Scripts nach dem UAC Promt alle auf allen Maschinen durch ohne Fehler.
    Der Fehler der Kommt ist hier im Bild:


    Wie kommt es zu einem Fehler in der Zeile "0"?
    Auf den anderen Maschinen läuft es auch ...

    Was ist an der einen Maschine anders?
    Warum klappt es auf der einen Vista und der /er Maschine nicht ?
    Gibt es noch irgend welche anderen Sachen die man berücksichtigen muss?

    Einmal editiert, zuletzt von LGob (21. August 2010 um 11:44)

  • Was ist an der einen Maschine anders?
    Warum klappt es auf der einen Vista und der /er Maschine nicht ?


    Ich kenne deine Maschinen und auch das Skript nicht, vermutlich Rechteprobleme auf der Freigabe, denn

    Kopiere ich das Script zuerst auf die Lokale HD und starte dann laufen die Scripts nach dem UAC Promt alle auf allen Maschinen durch ohne Fehler.

    Der Fehler der Kommt ist hier im Bild:

    Leider kein Bild zu sehen,

    mfg (Auto)Bert

  • Das musst du denen Windowsseitig bebringen, Vista &> ziert sich etwas bei remote liegenden Setups/Exen.

    Ein Beispiel mit RDP angemeldet konnte ich auf dem Server wohl MS Setups nutzen aber keine 3rd party Setups.
    KLingt schräg ist aber so, Win2k8 war es übrigens.

    Wie umfangreich ist das Setup denn, falls es klein ist kopier es zuvor nach %temp% (@TempDir)

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

  • Hallo LGob,

    schade, dass die Fehlermeldung nicht mitgekommen ist, weshalb ich auch nur raten kann.
    Wenn Du das Script von einem gemappten Laufwerk aus startest und dann in den Admin Kontext wechselst, verlierst Du u. U. das Laufwerksmapping und das Script kann nicht weiter ausgeführt werden.

    In einem solchen Fall hilft, das Script per UNC-Pfad zu starten bzw. es vorher zu kompilieren und dann die EXE-Datei zu starten. Sofern Du aus dem Script heraus auf Dateien im Netz zugreift, müsstest du dann ebenfalls UNC-Pfade benutzen.

    Gruß
    Moctezuma III.

  • Also mal vor weg,
    hier die Fehlermeldung :)
    Ist im Anhang (Unscharf ist nur der Pfad zur Datei)
    letztens vergessen einzufügen.


    Das musst du denen Windowsseitig bebringen, Vista &> ziert sich etwas bei remote liegenden Setups/Exen.

    Ein Beispiel mit RDP angemeldet konnte ich auf dem Server wohl MS Setups nutzen aber keine 3rd party Setups.
    KLingt schräg ist aber so, Win2k8 war es übrigens.

    Wie umfangreich ist das Setup denn, falls es klein ist kopier es zuvor nach %temp% (@TempDir)


    Nicht die SetUp sind das Problem, das Script selbst,
    Diese(s) liegt zentrall auf einer freigabe, dass wen sich was ändert, dort durchgeführt wird,
    und von den Clients nur ausgeführt wird.



    Ich kenne deine Maschinen und auch das Skript nicht, vermutlich Rechteprobleme auf der Freigabe, (Auto)Bert


    Welche Rechte den?
    Kann die Sachen ja raus Kopieren hineinschreiben und anderes aus der aus der Freigabe auch ausführen.
    Alle PCs sind in ner Domain, und die DomainUser sind die selben, sollten also die selben rechte haben.


    Hallo LGob,

    schade, dass die Fehlermeldung nicht mitgekommen ist, weshalb ich auch nur raten kann.
    Wenn Du das Script von einem gemappten Laufwerk aus startest und dann in den Admin Kontext wechselst, verlierst Du u. U. das Laufwerksmapping und das Script kann nicht weiter ausgeführt werden.

    In einem solchen Fall hilft, das Script per UNC-Pfad zu starten bzw. es vorher zu kompilieren und dann die EXE-Datei zu starten. Sofern Du aus dem Script heraus auf Dateien im Netz zugreift, müsstest du dann ebenfalls UNC-Pfade benutzen.

    Gruß
    Moctezuma III.

    UNC?
    wie geht den das?

  • Leg zum Test, das Script mal unkompiliert auf die Freigabe. Aus dem Ordner Deiner AutoIt-Installation legst Du das "AutoIt3.exe" dazu. Natürlich ggf. zusätzlich im Script genutzte externe Setup's, Tool's und DLL's.

    Jetzt startest Du dein Script mit 'AutoIt3.exe <scriptname>'. Dann bekommst Du auch die Zeile, in der das Script die externe Datei nicht findet.

    Und wenn Du dann mal den Quellcode deines Scripts mitlieferst, könnte man auch sagen woran es liegt/liegen könnte !

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

  • es mag bei Dir durchaus auch en Problem im Script sein, aber das Windows beim Start remoter Exen / Setups pingelig ist
    (je nach UAC Konfig wahrscheinlich mehr oder weniger) würde eich auf jeden fall im Kopf behalten. :)

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o


  • UNC?
    wie geht den das?

    Du hast ja einer Dateifreigabe einen Laufwerksbuchstaben zugeordnet, z. B.
    Laufwerk H: befindet sich auf "\\server1\freigabe", dann ist "\\server1\freigabe" eben der UNC-Pfad. Wenn also Dein Script mit "H:\go.au3" aufgerufen würde, wäre die UNC-Variante "\\server1\freigabe\go.au3".

    Deine Laufwerkszuordnung siehst Du auch ohne Explorer im DOS-Fenster, einfach folgenden Befehl eingeben(s. Dateianhang):

    net use


    Du kannst auch unter Vista/Win7 mal Folgendes ausprobieren, sofern Du mit einfachen Benutzerrechten angemeldet bist und Netzwerklaufwerke zugeordnet sind:
    - nach c:\windows wechseln
    - mit rechter Maustaste auf notepad.exe klicken
    - "Als Administrator ausführen" wählen und authentifizieren
    - im Notepad Strg-O für Datei/Öffnen

    Wenn im Öffnen-Dialog jetzt Deine Netzwerlaufwerke verschwunden sind, lies noch mal meine vorherige Antwort. :D

    Gruß
    Moctezuma III.

  • hallo,

    ich mach bei netzwerksachen immer ein laufwerksmapping siehe beispiel

    [autoit]


    #Region ### v-laufwerk mappen
    $drive = DriveMapGet("V:")

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

    If $drive <> "\\server\dfs" Then
    ; Disconnect
    DriveMapDel("V:")
    DriveMapAdd("V:", "\\server\dfs", 1)
    EndIf
    #EndRegion ### v-laufwerk mappen
    ;beispeilpfad
    $fuserver = "V:\Standort\IT-Systems-and-Services\Public\Updater.exe"

    [/autoit]

    über den UNC pfad sollte es aber auch gehen
    \\server\freigabename\updater.exe

    alternativ wie schon erwähnt hauptprogramm und updater zusammen auf das lokale lw legen und dann mit den geänderten daten im netzwerk abgleichen!
    hab ich bei uns mehrfach bei bestimmten sachen im einsatz ...

    gruß gmmg

  • Hmmm
    Naja da das Script noch bevor irgendwas ausgeführt wird abbricht verstehe ich das nicht.
    Wir nicht zuerst das ganze Skript geladen bevor es ausgeührt wird?
    Wenn dann der Kontext swich stattfindet ...

    Das UNC Schema ist zwar nett, aber würde nur den Komfort stören.
    Dann klappt das Doppelt klicken nicht mehr ;)

    Naja für mich ist das aber erledigt.
    Danke für eure Hilfe

    PS: Kompilieren hilft.