Windows mit exec() neustarten

Also ich habe nun eine kleine exe gefunden, die die Aufgaben der Shutdown.exe übernimmt.
Diese spreche ich mit folgendem Code an:
PHP:
exec("F:\apachefriends\xampp\intern\shutdown.exe -u -f -t 30");
Das bedeutet: "Fahre den Computer in 30sec schnell herunter"
Allerdings passiert: nichts.
Spreche ich die Shutdown.exe mit den selben Parametern über die Dos-Box an, klappts.

Woran könnte das liegen?
 
kann ich dir nicht sagen.
mach doch ein kleines Batch-Programm die die Shutdown.exe aufruft.
Oder meinst Du das geht nicht?
 
denke nicht das das geht. aber ich probiers.

EDIT:
wie ichs mir dachte: es geht nicht.
 
Zuletzt bearbeitet:
Der PHP-Code steht oben.
Batch-File:
Code:
@echo off
echo Server wird abgemeldet...
echo bitte warten...
shutdown.exe -l -t 10

EDIT:
Der PHP-code hat sich natürlich auch geändert. Statt des ursrünglichen, steht in der exec()-Funktion jetzt der Pfad/Name des Batch-Files.
 
versuch es mal mit dem absoluten pfad!
oder
Code:
CD //absoluter Pfad
shutdown...

sonst probier mal das als Batch datei:
Code:
ECHO Sytem wird runtergefahren!
RUNDLL.EXE USER,EXITWINDOWS

schau mal habe ich gefunden:
START
Startet ein Programm unter Windows.
Parameter :
{DATEI} : Die zu startende Datei (braucht nicht ausführbar zu sein)
/M : Minimiertes Fenster beim Start
/MAX : Maximiertes Fenster beim Start
/W : Führt die aufrufende Batch erst weiter aus wenn das aufgerufene Programm beendet ist
/R : Startet die Anwendung im Vordergrund
Weiteres :
Mit dem Parameter /W sinnvoll, wenn in einer Batch Daten erst nach Beenden des aufgerufenen Programms verarbeitet werden sollen. Beispiel aus dem Leben gegriffen : Um eine WebPage lokal auf Ihrem Windows- Rechner zu testen benötigen sie einen Server, hier mal der Apache. Zunächst muss mal alles rüberkopiert werden, dann wird der Server und der Internet-Explorer gestartet. Schliesst man den IE läuft die Batch weiter und der Apache wird ebenfalls beendet.
@ECHO OFF
CLS
ECHO Kopiere Verzeichnis ...
XCOPY D:\Mypage\htdocs C:\Programme\Apache\htdocs /Y /E >NUL
XCOPY D:\Mypage\cgi-bin C:\Programme\Apache\cgi-bin /Y /E >NUL
ECHO Starte ...
START /m C:\Programme\Apache\Apache.exe -k start >NUL
ECHO Zum Starten von IE Taste drücken ...
START /max /w IEXPLORE 127.0.0.1 >NUL
C:\Programme\Apache\Apache.exe -k stop >NUL
Vielleicht klappt es damit

So müsste es eigentlich funktionieren:
Code:
@ECHO off
ECHO System herunterfahren?
PAUSE
START "F:\apachefriends\xampp\intern\shutdown.exe" -u -f -t 30 >NUL
 
Zuletzt bearbeitet:
Ich werde mal weiter probieren. Wenn Ich mehr weiß sag ich bescheid!

edit1:
schau mal hier

Da ist beschrieben wie Du die Batch-Datei unter Windows-Systemen ausführen kannst!
(Der Webserver muss dann aber Windows sein)
Da ist auch der Ansatz für Linux-Systeme beschrieben. Und ich denke die richtigen shell-Befehle bekommst Du schon irgendwie raus!

Ich hoffe das ich dir wenigstens ein bisschen weiter helfen konnt! :)

edit2:

Ich kenne jetzt den korekten Aufruf einer Batch-Datei auf dem Server:
PHP:
<html>
<body>
	<?php 

	$bat = `./batch.bat`;
	echo "<pre>$bat</pre>";

	?>
</body>
</html>
Acht auf die ` bei $bat = `./batch.bat`;! --> Es sind keine " oder '! Das geht auf jedenfall. habe es ausprobiert.
Blos die Batch-Datei hat bei mir nicht geklappt. Keine Ahnung warum!

Kinger
 
Zuletzt bearbeitet:
So, nun hab ichs folgendermaßen:
- shutdown.exe ins Verz "F:\WINNT\system32\" verschoben
- shell_exec('shutdown -l -f -t 10');

Nun höre ich nach 10 sec ein "Klingeln", aber passieren tut nichts.


NACHTRAG:
Desweiteren taucht die Shutdown.exe in der Prozessliste des Task-Managers auf.
 
Zuletzt bearbeitet:
Zurück