Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
mettes
Hast du PSEXEC auf dem Quellsystem (von wo aus die batch-Datei gestartet werden soll) oder auf dem Zielsystem (wo die batch-Dtei ausgeführt werden soll) installiert? Normalerweise reicht die Installation auf dem Quellsystem. Damit übrigens die Kurzform "psexec" funktioniert, muss der Pfad wo die Datei liegt, in der PATH-Umgebungsvariable eingetragen sein. Ansonsten musst du den kompletten Namen des Programms angeben, also mit Pfad. Es kann auch sein, dass du die Datei unter dem Benutzer A angelegt hast, aber Benutzer B (SAP?) darf aufgrund der Berechtigungen nicht darauf zugreifen. Am Besten du schaust dir auch die Dateiberechtigungen durch und prüfst ob der Benutzer unter dem das SAP-System läuft auch berechtigt ist die Datei auszuführen.mettes hat geschrieben:Das Problem ist nun das PSEXEC auf dem Server nicht wie gewünscht ausgeführt wird (PSEXEC muss zur Installation in den Ordner "C:\Windows\system32\" kopiert werden). Ruft man nun über cmd psexec auf passiert allerdings nichts, normalerweise müssten die Befehle angezeigt werden. Auch ein Aufruf über die cmd mit den entsprechenden Remote-Parametern funktioniert nicht (auf meinem Client funktionert es mit den gleichen Parametern einwandfrei). Dort bin ich Moment noch am recherchieren....
Welches Authentifizierungsfenster? Windows oder SAP?mettes hat geschrieben:Ich habe heute die Variante mit der Methode Execute versucht. Nach Aufruf dieser Methode öffnet sich das Authifizierungsfenster (Benutzername und Passwort). Ich vermute, dass liegt an den Berechtigungen? Allerdings konnte ich mich mit meinen Benutzerdaten, die ich eingebe, wenn ich mich über remote-desktop-verbindung auf das system zugreiffe, nicht einloggen.
Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
mettes
PSEXEC habe ich auf dem Quellsystem installiert. Ich habe jetzt die Ursache gefunden. Und zwar wurde PSEXEC nicht richtig ausgeführt, da es ein Problem mit dem Programm gab, dass auf dem NON-SAP System liegt und per Batch-Datei aufgerufen wird. Leider kam keine Fehlermeldung in PSEXEC....a-dead-trousers hat geschrieben:Hast du PSEXEC auf dem Quellsystem (von wo aus die batch-Datei gestartet werden soll) oder auf dem Zielsystem (wo die batch-Dtei ausgeführt werden soll) installiert?
Windows. Das Authentifizierungsfenster kann umgangen werden, indem man in dem PSEXEC Aufruf einen Benutzernamen und Kennwort einfügt (-u User -p Passwort).a-dead-trousers hat geschrieben:Welches Authentifizierungsfenster? Windows oder SAP?
Kannst du mir hier noch mal erläutern, welche Berechtigungen du genau meinst bzw. welches Konzept mit Berechtigungen dahinter stecken würde. Würde das auch über einen Funktionsaufruf gehen?a-dead-trousers hat geschrieben:PSEXEC ist meines Erachtens das Programm der Wahl!
1. Wird dadurch das SAP System nicht mit der Abarbeitung des Befehls belastet
2. Man muss dem "Benutzer" des SAP Systems nicht die erforderlichen Berechtigungen auf dem NON-SAP-SYSTEM erteilen
(PSEXEC erlaubt die Ausführung unter einem anderen Benutzerkonto)
-u User -p Passwortmettes hat geschrieben:Kannst du mir hier noch mal erläutern, welche Berechtigungen du genau meinst bzw. welches Konzept mit Berechtigungen dahinter stecken würde. Würde das auch über einen Funktionsaufruf gehen?
Nö, soweit ich weiß handelt es sich hierbei um den RFC Aufruf des Betriebssystem-Komandos, sprich einen Befehl auf einem anderen SAP-System ausführen.mettes hat geschrieben:Jetz habe ich gesehen, dass diese Methode 'SXPG_COMMAND_EXECUTE' noch den Paramter "Targetsystem" hat. Wäre es nicht möglich, mit dieser Methode die Batch-Datei auf dem NON-SAP System direkt aufzurufen?
Kannst du die start-batch nicht einfach weglassen? PSEXEC sollte sich auch direkt aufrufen lassen.mettes hat geschrieben:Es wird also eine Batch-Datei (start-batch) aufgerufen, die auf dem Client liegt und per PSEXEC die Batch-Datei auf dem NON-SAP System per Remote aufruft.
Wie schon zuvor erwähnt: SXPG_COMMAND_EXECUTE und lass die start-batch weg, dann solltest du den Exit-Code der PSEXEC-Ausführung erhalten. Wie man aber den Exit-Code des Remote-Systems erhält bzw. ob das überhaupt geht musst du bei Sysinternals (Microsoft) nachfragen.mettes hat geschrieben:Mein aktuelles Problem ist nämlich noch, dass die Methode cl_gui_frontend_services=>execute keinen exitcode von der Batchdatei liefert. Diesen benötige ich allerdings zur weiterverarbeitung.
Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
mettes