Ich möchte mittels einem PHP Script ein Programm ausführen (Windows Vista!) und bekomme folgende Meldung:
Fatal error: Uncaught exception 'com_exception' with message '<b>Source:</b> WshShell.Exec<br/><b>Description:</b> Zugriff verweigert ' in W:\htdocs\ocr\cmd_test.php:7 Stack trace: #0 W:\htdocs\ocr\cmd_test.php(7): com->Exec('W:\TopOCR?opocr...') #1 {main} thrown in W:\htdocs\ocr\cmd_test.php on line 7
W:\TopOCR\topocr
Ist der Ort der exe die ich ausführen will.
W:\htdocs\ocr\test1.txt
Ist das Server-Verzeichnis in dem ich dem das Skript liegt und der Output abgespeichert werden soll
Der Code sieht so aus:
$runCommand = "W:\TopOCR\topocr W:\TopOCR\test.jpg -LANGUAGE GRM W:\htdocs\ocr\test1.txt";
$WshShell = new COM("WScript.Shell");
$output = $WshShell->Exec($runCommand)->StdOut->ReadAll;
Der Aufruf von "W:\TopOCR\topocr W:\TopOCR\test.jpg -LANGUAGE GRM W:\htdocs\ocr\test1.txt" in der cmd Konsole des Servers liefert die erwünschte Ausgabe, führe ich das selbe aber über den PHP Code aus scheine ich keine Zugriffsrechte zu haben.
Ich könnte mir vorstellen, dass es daran liegt dass der Apache Server sich mit einem Anonymen Benutzer anmeldet wenn er mit Exec das Kommando ausführen will und dadurch keine Rechte dazu hat.
Würde mich freuen wenn mir jemand sagen könnte ob ich damit richtig liege und wenn ja wie ich es umgehen kann.
Ich bin mir des Sicherheitsrisikos durchaus bewusst, da das Skript aber nie online gehen wird und immer auf meinem lokalen Server bleibt ist das Risiko relativ gering!