IPS auf Windows: Kommandozeile aufrufen

Hallo,

ich muß aus IPS auf Windows ein Python-Script in einem vorgegebenen Ordner ausführen.
Das hier funktioniert so leider nicht:


 $result = shell_exec("python c:\Python\get_audi_status.py");
 echo $result;

Kann mir jemand auf die Sprünge helfen?

Viele Grüße
Volker

Backslash in einem String mit doppelten Anführungszeichen müssen escaped werden (mit einem Backslash).
Oder einfache Anführungszeichen benutzen.
Michael

Danke, Michael, der Unterschied war mir nicht bewusst.

Das Python-Script wird leider trotzdem nicht ausgeführt. Direkt von der Kommandozeile funktioniert es. Berechtigung im Dateisystem sollten auch passen (Vollzugriff für „jeder“).

Interessant wäre eher ob der Pfad zu Python in der Windows Umgebungsvariable PATH auch für das System gesetzt ist.
Wenn du als User es auf der Kommandozeile startest, so ist das eine Sache. Aber IPS läuft nicht als User, sondern als System Dienst.
Michael

Ja, Python ist im PATH.
Ich befürchte auch, daß es irgendein verstecktes Problem mit den Zugriffsrechten ist. Muß ich mal weitersuchen …

EDIT: Na klar, das ist es. Python ist bei mir nur im User-PATH und auch per default im User-Verzeichnis installiert, da hat ein Systemdienst keinen Zugriff. Das erklärt das Problem. Muß ich mal schauen, wie das lösbar ist …

Dem PATH des Systems? Oder nur des Users?
Michael

Ja, die Frage hat mich dann zur Ursache des Problem geführt.

Ist nur im User-Path, aber das Problem ist weitergehend:
Ich hatte Python ursprünglich im Linux-Subsystem von Win10 installiert, später dann die native Windows-Version. Und das ganze Python-Gedöns hat sich dabei in meinem User-Verzeichnis installiert. Dadurch hat ein Systemdienst auf „mein“ Python also keinen Zugriff, wie mir nun erst bewusst wird.

Dann lass ich es so, wie es momentan läuft: die Datenabfrage per Python läuft per Windows Taskplaner im Benutzerkontext (das funktioniert) und IPS macht nur die Datenauswertung der von Python aus erzeugten JSON-Datei.