Zum Inhalt springen

Batch File per php starten


Empfohlene Beiträge

Hallo zusammen,

Ich versuche per exec() ein Batch File zu starten.

Das Batch File liegt im selben Ordner wie das php File.

Wenn ich das Batch File direkt starte funktioniert es auch.

Jedoch nicht wenn ich das Batch File per exec starten möchte:

exec('cmd.exe /c zweitens.bat >> test.txt');

Das Test.txt gibt mir folgendes aus:

C:\Inetpub\wwwroot\fileliste>xcopy \\backup01\htdocs$\fileliste\test.mpg \\backup01\htdocs$\fileliste\test\ /Y /Q

Das safe mode ist auf off gestellt

Hat jemand eine Idee wo das problem liegen könnte? Bin völlig ratlos....

Gruss

Angins

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das gibt kein error zurück...

Gut. Dir ist klar, dass ein PHP Script nicht unter dem gleichen User läuft, wie wenn Du es per Hand ausführst, d.h. Deine Batchdatei wird immer von dem User aufgerufen, der das PHP Script startet. Somit wäre die Frage, darf der User auf die Batchdatei zugreifen und diese ausführen (analoges für cmd, Datei und Pfade). Ebenso sollte man die Pfadangaben prüfen, damit diese auch korrekt arbeiten

als Hinweis: Um Dateien zu kopieren kann man auch die interne PHP Funktion PHP: copy - Manual verwenden

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja das ist klar. Deshalb setze ich zuerst mit cpau die Userrechte. Zudem habe ich auf allen Ordnern und Dateien die Rechte überprüft.

Dei Pfade müssen stimmen. Das Batch läuft ja eigentlich, also müssen die Pfade im Batch File stimmen. Und das php File ist ja im selben ordner wie das Batch File.

Kann leider nicht die php interne copy Funktion benützen. Da ich ein anderes Userrecht (eben mit cpau) vergeben muss. Denn das Ziel am Schluss ist, das ich auf einen anderen Server zugreife, um die Dateien zu kopieren.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja das ist klar. Deshalb setze ich zuerst mit cpau die Userrechte. Zudem habe ich auf allen Ordnern und Dateien die Rechte überprüft.

Das nützt Dir alles nichts, wenn der User, der das PHP Script startet nicht cmd ausführen darf und ich meine mich zu erinnern, dass die IUSER* kein Executable-Recht für cmd hat

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja die Batchdatei wird ausgeführt. Und cpau scheint auch zu funktionieren, wenn ich nämlich ein falsches Passwort eingebe, funktioniert das kopieren nicht.

Der erste Parameter gibt nichts zurück, der zweite gibt 1 zurück.

Okay, das wusst ich nicht, dass IUser wahrscheinlich keine Executable-Recht für cmd besitzen. Weisst du ob es da ne Möglichkeit gibt, solche Rechte zu vergeben?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja die Batchdatei wird ausgeführt. Und cpau scheint auch zu funktionieren, wenn ich nämlich ein falsches Passwort eingebe, funktioniert das kopieren nicht.

Du widersprichst Dir, denn wenn cmd nicht ausgeführt wird, wird auch die Batchdatei nicht ausgeführt, also macht Deine Aussage keinen Sinn. Es geht nicht darum, ob Du (!) die Batchdatei ausführen kannst, sondern der User des Webservers.

Okay, das wusst ich nicht, dass IUser wahrscheinlich keine Executable-Recht für cmd besitzen. Weisst du ob es da ne Möglichkeit gibt, solche Rechte zu vergeben?

Du kannst Rechte immer vergeben, wobei ich das aus Sicherheitsgründen sehr bedenklich halte, wenn einmal die cmd erlaubst und dann noch den Benutzerzugriff veränderst, denn jedes Programm, das Du in der Batchdatei verwendest muss auch die passenden Rechte besitzen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Konnte das Problem soeben beheben.

Hab nun einfach die cpau kommandozeile direkt ins exec geschrieben, und dort per -ex das batchfile mit der xcopy funktion aufgerufen:

exec("CPAU.exe -u user -p passwort -lwop -wait -c -ex copy.bat >> test.txt);

Danke Vielmals für eure Hilfe

Grüsse

Angins

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...