ClientCommand - Shell execute command - An error occured: Das System kann den angegebenen Pfad nicht finden

Feedback und Verbesserungsvorschläge zu ACMP
Ralf90
Beiträge: 8
Registriert: Do Mär 22, 2018 4:50 pm

Hallo ACMP-Support,

wir verwenden das Shell execute command, um eine .cmd-Datei auf einem Server aufzurufen.
Zuvor wird das Netzlaufwerk Z: mit einem entsprechenden UNC-Pfad verbunden.

Das Shell execute command sowie das Verbinden des Netzlaufwerkes werden im selben Kontext mit dem selben User ausgeführt.
Der User, welcher auf den Server zugreifen muss, hat volle Zugriffsrechte auf das Verzeichnis sowie auf die entsprechende .cmd.

Der Pfad zur .cmd ist korrekt und wurde mehrfach geprüft.

Im Anhang findet ihr das Consolen-Log, der User unter dem das Netzlaufwerk verbunden und das Shell Execute Command ausgeführt wird, sowie den Pfad und die Zugriffsrechte zur tem.cmd

Was machen wir falsch?

Besten Dank im Voraus!

Gruß
Ralf
Dateianhänge
Netzlaufwerk-verbinden-als.PNG
Netzlaufwerk-verbinden-als.PNG (8.83 KiB) 5553 mal betrachtet
Consolen-Log.PNG
Consolen-Log.PNG (13.78 KiB) 5553 mal betrachtet
Shell-Execute-Command-Ausfuehren-als.PNG
Shell-Execute-Command-Ausfuehren-als.PNG (7.44 KiB) 5553 mal betrachtet
Pfad-zur-CMD.PNG
Pfad-zur-CMD.PNG (3.48 KiB) 5553 mal betrachtet
Zugriffsrechte-Infodba.PNG
Zugriffsrechte-Infodba.PNG (10.27 KiB) 5553 mal betrachtet
Dennis Koch
Beiträge: 501
Registriert: Di Nov 20, 2012 4:03 pm

Hallo Ralf,

spontan sieht das gut aus. Existiert das Verzeichnis C:\temp ?
Wenn ich per cmd in einen Ordner die Ausführung ausgeben möchte welcher nicht existiert, erhalte ich den Fehler "Das System kann den angegebenen Pfad nicht finden."
Ggf. liegt es ja daran?
Mit freundlichen Grüßen / Best regards

Dennis Koch
Aagon GmbH
Ralf90
Beiträge: 8
Registriert: Do Mär 22, 2018 4:50 pm

Hallo Dennis,

das Verzeichnis C:\temp existiert.
Haben den Arbeitsordner C:\temp zum Erstellen der logs im Shell execute command angegeben.
Leider erhalten wir weiterhin die gleiche Fehlermeldung.

Wenn wir lokal am PC eine Eingabeaufforderung aufrufen und die .cmd manuell über den gleichen Pfad mit den gleichen Parametern ausführen funktioniert es ohne Probleme.

Wir sind etwas ratlos.. :(
Dennis Koch
Beiträge: 501
Registriert: Di Nov 20, 2012 4:03 pm

Funktioniert es wenn man beim Shell Execute unter "Ausführen als" die Checkbox "Erhöhte Rechte anfordern" deaktiviert. Normalerweise ändert sich mit der Checkbox der Kontext auf den lokalen Administrator.
Mit freundlichen Grüßen / Best regards

Dennis Koch
Aagon GmbH
Ralf90
Beiträge: 8
Registriert: Do Mär 22, 2018 4:50 pm

Haben nun überall die Checkbox "Erhöhte Rechte anfordern" deaktiviert.
Leider wird der angegebene Systempfad noch immer nicht gefunden...
Dennis Koch
Beiträge: 501
Registriert: Di Nov 20, 2012 4:03 pm

Wie sieht denn der Aufruf vom Shell Execute aus? Davon hätte ich gerne mal einen Screenshot. Funktioniert der Aufruf wenn man die Ausgabe weglässt? Also nur den Aufruf der cmd-Datei in der Zeile Dateiname hat?
Mit freundlichen Grüßen / Best regards

Dennis Koch
Aagon GmbH
Benutzeravatar
ngottschalk
Beiträge: 293
Registriert: Mi Sep 08, 2010 12:57 pm

Wird das Netzlaufwerk denn für den Kontext des Benutzers, der im Shell Execute command angegeben ist, eingebunden oder im Systemkontext? Die Angabe aus dem Screenshot bezieht sich nur darauf, welche Anmeldedaten zum Einhängen genutzt werden (wenn ich es richtig im Hinterkopf habe), also würde das dann heißen, dass im Kontext des System-Accounts mit den Anmeldedaten "WISI\Infodba"ein Netzlaufwerk gemappt wird. Wenn nun Anschließend der User Infodba zur Ausführung genutzt wird, kennt dieser das Laufwerk nicht.
Mit freundlichen Grüßen

Niklas Gottschalk (gottschalk@zoller-usa.com)
IT Systems Administrator
Zoller Inc.
Ralf90
Beiträge: 8
Registriert: Do Mär 22, 2018 4:50 pm

@ngottschalk: Danke, genau das war unser Problem!
Das wiederum heißt, es ist nicht möglich ein Shell Execute Command mit einem Netzlaufwerk auszuführen, welches im Kontext eines anderen Benutzers ausgeführt werden soll. (Hoffe das war verständlich)

Beispiel: Das Netzlaufwerk "Z:" wird mit den Anmeldeinformationen von WISI\Infodba erstellt. Darauffolgend führen wir ein Shell Execute Command mit den Anmeldeinformationen des gleichen Users WISI\Infodba aus. In dem Shell Execute Command ist nun der Laufwerksbuchstabe "Z:" angegeben, welcher unter der Anmeldung WISI\Infodba nicht gefunden werden kann.

Wie können wir das Shell Execute Command als WISI\Infodba User ausführen? Das funktioniert dann wohl nur mit Variablen und UNC-Pfaden?

Danke und Gruß
Ralf
Benutzeravatar
ngottschalk
Beiträge: 293
Registriert: Mi Sep 08, 2010 12:57 pm

Hallo Ralf,

das Problem ist, dass das Netzlaufwerk für einen bestimmten Account (der, unter dem das Shell Execute Command ausgeführt wird) nicht zur Verfügung steht. In diesem Fall würde ich persönlich das "Map network drive" (das nur im Kontext des Systems oder des angemeldeten Users ausgeführt werden kann und nicht für einen spezifischen, angegebenen Account) durch ein Shell Execute command ersetzen; In diesem dann "net use <Buchstabe>: \\<server>\<share> <passwort> /User:<user>@<domain>" ausführen lassen und im "Ausführen als" den Account angeben, für den es später verfügbar sein soll.

EDIT:
Das wiederum heißt, es ist nicht möglich ein Shell Execute Command mit einem Netzlaufwerk auszuführen, welches im Kontext eines anderen Benutzers ausgeführt werden soll. (Hoffe das war verständlich)
Ganz genau, da bei Windows die Laufwerke immer pro Benutzer (und nicht systemweit) eingebunden werden.
Mit freundlichen Grüßen

Niklas Gottschalk (gottschalk@zoller-usa.com)
IT Systems Administrator
Zoller Inc.
Ralf90
Beiträge: 8
Registriert: Do Mär 22, 2018 4:50 pm

Guten Morgen Niklas,
guten Morgen Dennis,

vielen Dank für eure hervorragende Unterstützung und Bemühungen!

Jetzt stehen wir noch vor einem großen Rätsel...
Ein weiteres Shell execute command ruft eine tem.cmd auf, welche wiederum folgenden Befehl ausführt:

Z:\tem.bat -s Z:\tem.xml

Leider wird nur die tem.cmd ausgeführt und der eigentliche Installationsaufruf der tem.bat findet nicht statt bzw. wird nicht ordnungsgemäß ausgeführt.

Wenn wir die tem.cmd über eine Eingabeaufforderung loakal an einem PC (ohne ACMP) ausführen funktioniert der Installationsaufruf mit den entsprechenden Parametern.

Das gleiche Ergebnis erhalten wir, wenn wir über das Shell execute command die tem.bat mit dem Parameter -s und der Antwortdatei tem.xml direkt ausführen.

Gibt es eine Möglichkeit zu sehen, ob die tem.bat korrekt aufgerufen wird?
Und habt ihr zufällig eine Idee, weshalb die tem.bat eventuell nicht richtig ausgeführt wird über das Shell execute command?

Danke nochmals im Voraus!

Gruß
Ralf
Antworten