RunAs und Netzlaufwerk + Variablenübergabe zwischen 2 Scripten

  • Moin,
    ich habe hier mehrere Netzlaufwerke. In einem liegt ein Script das ausgeführt werden soll in Form einer .exe. Dieses soll aber durch ein anderes RunAs-Script ausgeführt werden, welches sich auf einem anderen Netzlaufwerk (beide natürlich im gleichen Netzwerk) befindet. Das ist das erste Problem was ich nicht gebacken bekomme. Habs auch schon mit dem 8.3-Namen versucht - ebenfals kein Erfolg! Liegt das auszuführende Script z. B. auf dem USB-Stick, und nur das RunAs-Script im Netzwerk, funktioniert der Aufruf. Liegt das RunAs-Script lokal auf dem Rechner, und das andere Script im Netzwerk, funktioniert es wieder nicht.

    Die andere Sache: Ich habe bei dem RunAs eine Anmeldung mit eingebaut. Passwort und Benutzername sollen vom RunAs-Script an das andere in einer Variablen übergeben werden, um diese noch für andere RunAs'es zu benutzen.

    PS: Nein, ich kann nicht aus beiden Scripten eines machen ;)

  • Ja, natürlich:

    Spoiler anzeigen
    [autoit]

    Global $benutzername = InputBox("Benutzername", "Geben Sie bitte Ihren Benutzernamen ein.", @UserName)
    Global $passwort = InputBox("Passwort", "Geben Sie bitte Ihr Passwort ein.", "", "*")

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

    Global $pfad = "Q:\Netzlaufwerk1\auszuführende Script.exe"
    Global $abenutzername[4] = ["User1", "User2", "User3", "User4"]

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

    For $r = 0 To Ubound($abenutzername) - 1
    If $abenutzername[$r] = $benutzername Then
    RunAs($benutzername, "Domäne", $passwort, 3, $pfad)
    Exit
    EndIf
    Next
    MsgBox(0, "", "Sie sind zur Installation nich berechtigt!")
    Exit

    [/autoit]

    Das andere Script sieht dann z. B. z. T. so aus:

    [autoit]

    RunAs($benutzername, "Domäne", $passwort, 0, "c:\WINNT\explorer.exe")

    [/autoit]

    Natürlich stark verkürzt ;)

  • Was meinst mit verbunden? Ich habe eo über den Explorer Zugriff, wenn du das meinst.
    Mit dem UNC-Pfad meinst du das, richtig? \\Servername\q:\Scripte\script.exe
    Das funktioniert auch nicht.
    Habe alle Zahlen von 0-3 durch. Funktioniert ebenfals nicht.
    Was ich aber gerade versucht habe: Die Datei mit einem ShellExecute aufzurufen
    funktioniert. Auch wenn sie sich in 2 verschiedenen Netzlaufwerken befinden!

  • Nein, UNC Pfad geht so:

    \\Servername\Freigabe\Pfad1\Pfad2\script.exe
    Also z.B. \\filesrv27\development\Scripts\test\script.exe

    Edit:
    Also Dein Problem ist immer noch, dass Du das andere Script nicht aufrufen kannst?
    Das mit der Variablenübergabe etc. können wir anschauen, wenn der Aufruf erst einmal klappt!

  • Ich kann es aufrufen, aber nicht mit dem RunAs-Befehl.
    ShellExecute funktioniert einwandfrei.

    Das mit der Freigabe ist so ein Problem. Unsere lokalen Laufwerke haben eine Freigabe,
    die Netzlaufwerke aber nicht und ich habe auch keine Rechte dazu, diese freizugeben.
    (Rechtsklick, Eigenschaften, Freigabe)

  • Die Netzlaufwerke haben schon eine Freigabe. Sonst könntest Du sie nicht im Explorer als Laufwerksbuchstabe einbinden.

    Aber wenn Du auf dem Test-PC auf welchem Du das Script nun testest, alle Netzlaufwerke, welche Du benötigst, eingebunden hast, dann sollte es auch ohne UNC Pfad (also mit den direkten Laufwerksbuchstaben) laufen!

    Immer vorausgesetzt Du hast die notwendigen Berechtigungen auf dem Share!

    Blöde Frage: Du hast schon das Wort "Domäne" durch Deinen Domänennamen ersetzt?
    Hast Du Win7? Wenn ja, schon mal mit #RequireAdmin probiert?