Probleme mit RunAs

  • Servus miteinander

    ich habe ein problem mit dem aufruf von fremden programmen mit RunAs.
    Ich habe ein kleines Programm geschrieben mit dem ich ein Fremdes Proigramm mit Parameter starte das funktioniert auch soweit perfekt.

    Nur bei manchen Servern wird das Externe Programm einfach nicht gestarte. Ich habe die Benutzerkontensteuerung schon gdeaktiviert den Virenscanner die Rechte bearbeitet usw. aber ohne erfolg. Hatt irgendjemand noch eine Idee warum ich das Externe Programm nicht starten kann.

    Der Aufruf ist wie Folgt.

    $val = RunAs( $domainuser, @LogonDomain, $domainpass, 1, Chr(34) & $progbin & "\" & $sProcess & Chr(34) & " /A:$(#OKF" & $impfilearraysplit[1] & ")\ARCHIV/F:" & $eimport & "\" & $impfilearray[$k] & " /SHR /BAT", @ScriptDir & "\" & $tmpdir , @SW_MINIMIZE)

    Wenn ich denn aufruf manuell starte kein Problem.

    MFG

    Mc Baldrian

    Solange
    du den anderen sein Anderssein nicht verzeihen kannst, bist du noch weit ab vom
    Wege der Weisheit.

  • Ohne das wir den Inhalt der Variablen $progbin und $sProcess kennen, ist es für uns unmöglich zu helfen.
    Mal vom Parameter "/A:$(#OKF" & $impfilearraysplit[1] & ")\ARCHIV/F:" & $eimport & "\" & $impfilearray[$k] & " /SHR /BAT" abgesehen. Hier kann man, ohne das dazugehörige Programm und die Array-Inhalte zu kennen, gar nichts sagen.

    Gruß
    Micha_he

    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"

  • Lass die verwendeten Parameter am besten mal ausgeben und kontrolliere ob zum einen alle Daten stimmen und zum anderen alle Pfade die Leerzeichen enthalten mit Anführungszeichen umschlossen sind:

    [autoit]


    consolewrite("user: " & @tab & @tab & $domainuser & @crlf)
    consolewrite("domäne: " & @tab & @tab & @LogonDomain & @crlf)
    consolewrite("pw: " & @tab & @tab & $domainpass & @crlf)
    consolewrite("befehl: " & @tab & @tab & Chr(34) & $progbin & "\" & $sProcess & Chr(34) & " /A:$(#OKF" & $impfilearraysplit[1] & ")\ARCHIV/F:" & $eimport & "\" & $impfilearray[$k] & " /SHR /BAT" & @crlf)
    consolewrite("workingdir: " & @tab & @tab & @ScriptDir & "\" & $tmpdir & @crlf)

    [/autoit]

    Ich würde den String im übrigen nicht mit chr(34) aufbauen, sondern aus Bequemlichkeit und der Übersicht wegen so:

    [autoit]


    $befehl = '"' & $progbin & '\' & $sProcess & '"' & ' /A:$(#OKF' & $impfilearraysplit[1] & ')\ARCHIV/F:' & $eimport & '\' & $impfilearray[$k] & ' /SHR /BAT'

    [/autoit]

    Ich vermute mal, dass der Fehler hier schlummert, da du diesen Pfad nicht in Anführungszeichen setzt:

    [autoit]

    $teilstring = 'ARCHIV/F:' & $eimport & '\' & $impfilearray[$k]

    [/autoit]
  • Servus,

    also hinter Chr(34) & $progbin & "\" & $sProcess & Chr(34) versteckt sich C:\Program Files (x86)\EASYWARE\BIN32\EZCBIP32.EXE uns es ist egal ob ich es mit oder ohne Parameter starten will, es startet auf manchen Servern nicht warumauch immer. Egal ob ich den Prozess mit RunAs oder Run versuche.

    Und ich habe keinen anhaltspunkt warum.

    Mit dem Usernamen und Password kann ich mich anmelden habe ich schon überprüft.

    gruss

    Mc Baldrian

    Solange
    du den anderen sein Anderssein nicht verzeihen kannst, bist du noch weit ab vom
    Wege der Weisheit.

    Einmal editiert, zuletzt von mcbaldrian (10. Juni 2013 um 13:19)

  • Ich zitiere mal die Anmerkungen der Hilfe zu runas(). Da gibt es wohl etliche Dinge zu beachten und da das Problem dir zu Folge nicht auf allen Systemen auftritt würde ich die Liste hier mal abarbeiten und prüfen ob auf den jeweiligen Systemen evtl. eine oder mehrere der problematischen Punkte erfüllt sind.