Ik zit met een probleempje met het commando shell_exec
Wat ik wil is via een PHP script een bepaalde service starten op een andere PC in het netwerk.
Met de tool psservice kun je via de commando lijn eenvoudig een service op een andere machine starten.
Je geeft in de command line in:
psservice \\192.168.1.4 -u username -p hetpaswoord stop checkdienst
(checkdienst = naam service)
Als je dit ingeeft dan stopt de service inderdaad op de machine met dat IP.
Nou dacht ik slim te zijn om via shell_exec dit via PHP te doen:
Maar wat ik ook probeer het werkt niet, het script freezed gewoon, in de process manager van de webserver (welke ook op w2k3 draait) zie je cmd.exe en psservice.exe draaien.
Maar waarom dit nu niet werkt weet ik niet, jammer genoeg zie je de command lijn niet op de desktop om te kijken wat er mis gaat.
Het script blijft dus net zolang hangen totdat je de processen killed.
Ik heb cmd.exe en psservice.exe de juiste rechten gegeven, als ik dit command geef:
Dan pingt ie de server en krijg ik het resultaat te zien, dus de rechten op cmd.exe staan goed, psservice.exe heeft exact dezelfde rechten als cmd.exe gekregen
Gebruik ik het commando:
Dan krijg ik een error dat de user/pass niet correct is, dit klopt omdat de andere machine een ander administrator paswoord heeft, om een ander user/pass mee te geven heb je dus psservice nodig.
Tsja en dat krijg ik niet werken via PHP.
Mijn vraag is nu:
- Is er een manier dat ik op de webserver op de desktop kan zien wat er in de commandbox nu mis gaat?
- iemand een idee wat ik nu fout doe en hoe dit wel werkend te krijgen is?
Ohja, gebruikte username en paswoord zijn 100% correct, ook voert de server de remote commando's gewoon uit als je het direct om de command lijn doet, het zit dus echt in het shell_exec gedeelte.
Wat ik wil is via een PHP script een bepaalde service starten op een andere PC in het netwerk.
Met de tool psservice kun je via de commando lijn eenvoudig een service op een andere machine starten.
Je geeft in de command line in:
psservice \\192.168.1.4 -u username -p hetpaswoord stop checkdienst
(checkdienst = naam service)
Als je dit ingeeft dan stopt de service inderdaad op de machine met dat IP.
Nou dacht ik slim te zijn om via shell_exec dit via PHP te doen:
PHP:
1
2
| $data = shell_exec("psservice \\$serverip -u $username -p $password $command $servicename"); print $data; |
Maar wat ik ook probeer het werkt niet, het script freezed gewoon, in de process manager van de webserver (welke ook op w2k3 draait) zie je cmd.exe en psservice.exe draaien.
Maar waarom dit nu niet werkt weet ik niet, jammer genoeg zie je de command lijn niet op de desktop om te kijken wat er mis gaat.
Het script blijft dus net zolang hangen totdat je de processen killed.
Ik heb cmd.exe en psservice.exe de juiste rechten gegeven, als ik dit command geef:
PHP:
1
2
| $data = shell_exec("ping $serverip"); print $data; |
Dan pingt ie de server en krijg ik het resultaat te zien, dus de rechten op cmd.exe staan goed, psservice.exe heeft exact dezelfde rechten als cmd.exe gekregen
Gebruik ik het commando:
PHP:
1
2
| $data = shell_exec("sc \\$serverip $command $servicename"); print $data; |
Dan krijg ik een error dat de user/pass niet correct is, dit klopt omdat de andere machine een ander administrator paswoord heeft, om een ander user/pass mee te geven heb je dus psservice nodig.
Tsja en dat krijg ik niet werken via PHP.
Mijn vraag is nu:
- Is er een manier dat ik op de webserver op de desktop kan zien wat er in de commandbox nu mis gaat?
- iemand een idee wat ik nu fout doe en hoe dit wel werkend te krijgen is?
Ohja, gebruikte username en paswoord zijn 100% correct, ook voert de server de remote commando's gewoon uit als je het direct om de command lijn doet, het zit dus echt in het shell_exec gedeelte.