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
ClientCommand - Shell execute command - An error occured: Das System kann den angegebenen Pfad nicht finden
- Dateianhänge
-
- Netzlaufwerk-verbinden-als.PNG (8.83 KiB) 5553 mal betrachtet
-
- Consolen-Log.PNG (13.78 KiB) 5553 mal betrachtet
-
- Shell-Execute-Command-Ausfuehren-als.PNG (7.44 KiB) 5553 mal betrachtet
-
- Pfad-zur-CMD.PNG (3.48 KiB) 5553 mal betrachtet
-
- Zugriffsrechte-Infodba.PNG (10.27 KiB) 5553 mal betrachtet
-
- 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?
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
Dennis Koch
Aagon GmbH
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..
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..
-
- 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
Dennis Koch
Aagon GmbH
-
- 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
Dennis Koch
Aagon GmbH
- 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.
Niklas Gottschalk (gottschalk@zoller-usa.com)
IT Systems Administrator
Zoller Inc.
@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
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
- 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 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:
Ganz genau, da bei Windows die Laufwerke immer pro Benutzer (und nicht systemweit) eingebunden werden.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)
Mit freundlichen Grüßen
Niklas Gottschalk (gottschalk@zoller-usa.com)
IT Systems Administrator
Zoller Inc.
Niklas Gottschalk (gottschalk@zoller-usa.com)
IT Systems Administrator
Zoller Inc.
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
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