Bonjour,
Mon script exécute une commande SYSTEM(), en lançant un fichier batch sous windows.
Le fichier batch, si je le lance en ligne de commande sur le serveur, aucun problème, il fait son boulot. (il exécute un MBSACLI.exe avec les paramètres qui lui sont transmis).
Par contre, le même fichier batch lancer avec la commande SYSTEM(), s'exécute, mais n'exécute pas le MBSACLI.exe qu'est dedans, snif...
Si je fait un SYSTEM() - ou un Exec(), Passthu() etc... - directement de MBSACLI.exe, pareil, marche pas... re-snif...
Problème de droit ? Si j'exécute Apache (sous windows 2003 serveur) avec le compte utilisateur administrateur du domaine, pareil.
Je coince.
Le Batch ( les 'echo' c'est pour le contrôle):
Code X : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 @echo off c: echo [C:] cd \ echo [cd \] cd %3 echo [cd %3] echo [LANCEMENT-->] echo [mbsacli /target %1 /n SQL+IIS /o %1] mbsacli.exe /target %1 /n SQL+IIS /o %1 echo [<--FIN MBSA] echo [move %4\%1.mbsa %2\%1.xml] move %4\%1.mbsa %2\%1.xml echo [TADAAAAA !] echo.
Le Php :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 //récupération de l'adresse IP de la machine $adresseIP = $_GET['adresseIP']; $fichier = $adresseIP.".xml"; //ajout des guillemets au début et à la fin de chaque adresse 'pour éviter le problème des espaces) $dossierMbsaGipi = "\"".$dossierMbsaGipi."\""; $dossierMbsa = "\"".$dossierMbsa."\""; $rapportMbsa = "\"".$rapportMbsa."\""; //on supprime le fichier xml s'il existe execution du script de suppression du fichier if (file_exists($fichier))system("supprimer.bat $adresseIP $dossierMbsaGipi > null"); //execution du script MBSA echo "---------------------------------------------------------------<br/>"; echo "mbsa.bat <br/>"; echo "---------------------------------------------------------------<br/>"; echo"<pre>"; echo system("mbsa.bat $adresseIP $dossierMbsaGipi $dossierMbsa $rapportMbsa",$reponse); echo $reponse; echo"</pre>";
Partager