Page 1 of 1

CallRunAs - Fehler 2 ?

Posted: 30. Apr 2014, 09:00
by uebedi
Hallo zusammen,

ich versuche nun seit geraumer Zeit mit dem "CallRunAs" Befehl eine .exe zum Laufen zu bekommen. Leider gibt mir das SetupErrorLog immer den Fehler 2 aus.

Hier mal der Auszug aus der Setup.inf:

[Installation64]
AddMeter -1
CallRunAs /U:"Domäne"\"User" /P:"Encrypted" "%Src%\Setup.exe" /passive /norestart
If %ErrorLevel% == "3010" Then "RebootRequired" Endif
If %ErrorLevel% <> "0" Then "SET:InstallationError" EndIf

Als Fehlermeldung erscheint immer:

30.04.2014 07:46:38, Section [Set:Installation32], Line 5:
Kann Befehl 'CallRunAs '...' nicht ausführen.
Fehler 2!
OK

Die Section "Installation64" wird mit den Parametern WINDOWS64 DONTDELETE CLIENT aufgerufen.
Ich habe auch schon versucht ohne Variablen (%Src%) zu arbeiten und den Pfad hart anzugeben, leider ohne Erfolg.
Auch ein vorheriges Kopieren in einen temporären Ordner brachte keinen Erfolg.

UAC ist natürlich aus und die Sekundäre Anmeldung (Dienst) ist aktiv und läuft.
Empirum 15.1 wird eingesetzt.

Vielen Dank für eure Hilfe / Ideen.

Schöne Grüße
Dirk U.

Re: CallRunAs - Fehler 2 ?

Posted: 30. Apr 2014, 09:21
by MaMa82
Hallo,

eine prinzipielle Frage:

Wieso einen CallRunAs Befehl innerhalb einer CLIENT geflagten Sektion ausführen?

Der Sinn eines CallRunAs ist es ja eigentlich den folgenden Befehl/die externe Anwendung mit Hilfe eines bestimmten Benutzers auszuführen.
Im Regelfall ist das nicht der angemeldete Benutzer, sondern ein spezifischer Admin.

Sofern die externe Adwendung im Kontext des angemeldeten Benutzers gestartet wird, ist der CallRunAs eigentlich obsolet. Zumindest nach meinem Verständnis. Denn eine CLIENT geflagte Sektion wird ja nur im Benutzeranteil ausgeführt, oder sollte es zumindest. ;)

Zur Fehlernummer an sich:
Fehler 2 oder 3
In diesem Fall ist zumeist ein Befehl falsch geschrieben, die Setup.exe ist zu alt für den genutzten Befehl, ein aufzurufendes Programm wurde versucht als Befehl zu interpretieren.
Evtl. also auch ein Syntax-Problem bei Angabe des Benutzers und/oder Passwort. ;)

Noch ein kleiner Tipp - wenn mich nicht alles täuscht :mrgreen: , dann wird für die Installation des Benutzeranteils das ApplicationDir als SRC herangezogen. Also im Regelfall das lokale Paketverzeichnis (%ProgramFilesDir%\%ProductName%).

Viel Erfolg und ich hoffe Du kannst Deinen Stoplerstein aus dem Weg räumen. ;)

Re: CallRunAs - Fehler 2 ?

Posted: 30. Apr 2014, 10:24
by uebedi
Hi,

danke für das Feedback.

Der Grund warum in einem CLIENT Teil ein CallRunAs laufen soll ist der, dass die Installationsroutine einen Proxy braucht (es werden noch Inhalte nachgeladen). Dies funktioniert nicht als SYSTEM.
Deshalb haben wir einen User angegeben, der Proxy Berechtigungen hat und lokaler Admin ist auf allen Maschinen.

Der Hinweis mit den %Src% als CLIENT ist gut, jedoch funktioniert es ja auch nicht, wenn ich vorher die Setup.exe in C:\EmpTemp kopieren lasse und sie dann von dort aus starten lassen will.

Re: CallRunAs - Fehler 2 ?

Posted: 02. May 2014, 14:23
by uebedi
Also, leider ist das Problem weiterhin vorhanden.

Nun kommt aber noch erschwerend hinzu, dass dieser "Fehler 2" auch bei einfachen Befehlen wie

CallRunAs /U:*Domain*\*Domainuser* /P:*Passwort* net localgroup Administrators *username* /add

vorkommt.
Der RunAs User ist Admin auf den PC, daran liegt es also nicht. Wenn ich eine cmd als diesen Adminuser öffne und den Befehl manuell eingebe funktioniert alles.

Vielen Dank für Ihre Denkanstöße und ein schönes Wochenende!

Re: CallRunAs - Fehler 2 ?

Posted: 27. May 2014, 14:55
by Erik
Ich habe exakt das gleiche Problem wie du. Die Exe Datei lässt sich bei lokalem Benutzer (ohne Adminrechte) in der Konsole mit "runas /user:domain@user datei.exe" ohne Probleme installieren. Wenn ich im Skript den CallRunAs Befehl verwende kommt jedoch ein Fehler! Jedoch nicht fehler 2 sondern 1601. Bei Fehler 2 würde ich die Pfade prüfen.

Der Log gibt folgendes aus:

26.05.2014 15:08:33, Section [SET:InstallationError], Line 1:
ErrorLogMsg: Fehler 1601 beim Aufruf von setup.exe

Vorraussetzungen habe ich:
- UAC sind aus
- Install Bereich ist nicht mit "CLIENT" versehen
- Passwort ist mit /Setup Encryptet

Hat jemand eine Idee?

Re: CallRunAs - Fehler 2 ?

Posted: 10. Apr 2015, 13:33
by H.Kannegiesser
Hallo,
gibt es hierzu eine lösung inzwischen??

Ich habe genau das gleiche Problem.
callruas gibt immer den Fehler 2 aus.

Danke

Re: CallRunAs - Fehler 2 ?

Posted: 29. Apr 2015, 11:24
by DCosta
Ich habe hier das gleiche Problem und konnte einfach keine Lösung dafür finden. Ich habe dann, aus reiner Neugier, ein altes Softwarepaket getestet das jahrelang funktionierte und auch CallRunAs verwendet. Ebenfalls Fehler 2.
Keine Ahnung was da los ist. Ich glaube fast das der Befehl nicht mehr funktioniert in den neueren Versionen.

Re: CallRunAs - Fehler 2 ?

Posted: 29. Apr 2015, 11:44
by DCosta
Ich habe inzwischen eine Lösung gefunden.
Gut finde ich die nicht aber immerhin kann ich jetzt wieder meine Pakete verteilen.

Scheinbar ist die neuere Setup.exe nicht in der Lage CallRunAs auszuführen. Ich habe daraufhin eine alte Setup.exe von Version 14.2 genommen und lasse diese stattdessen kopieren in der Setup.inf von dem betroffenen Paket:

Code: Select all

[Installer]
1:Install\Setup.exe,        %CommonSetupDir%, OPTIONAL USEFILENAME DIRECTORY NOSIZEWARNING SETUP, 0
Dateiversion der Setup.exe die ich verwende ist 14.2.1.191

Dann funktioniert es wieder.
Und nun heißt es: Warten auf einen Fix von Matrix42

Re: CallRunAs - Fehler 2 ?

Posted: 24. Aug 2015, 18:33
by HaKp
Ich würde die Applikation einfach mit psexec starten. Psexec.exe in das ℅src% Verzeichnis kopieren und mit den entsprechenden Parametern in der Setup.inf ausführen (/?). Das Passwort kann auch verschlüsselt in der Setup.inf übergeben werden.

Vorteil: Es ist kein Userteil von Nöten.

Funktioniert bei mir einwandfrei. Wird benötigt, da zwei Applikationen während der Installation einen Zugriff auf einen SQL Server und SMB Pfad haben müssen und somit die Installation mit einem Domänen-User ausgeführt werden muss.