commande DOS en php pour MBSA

  • Auteur de la discussion enath
  • Date de début

enath

Habitué
Bonjour à tous, je pense poster ma question dans la bonne partie mais si je me suis trompé je présente toutes mes excuses.

Je développe actuellement un application dont une fonctionnalité est de lancer un test Microsoft Baseline Security Analyser sur une machine voulue (en réseau).

Pour cela j'exécute un script .bat que voici :

Code:
"C:\Program Files\Microsoft Baseline Security Analyzer 2"\mbsacli.exe /target 172.31.30.103 /n SQL+IIS /o 172.31.30.103

Je donne donc le chemin de l'exécutable MBSA auquel je donne les paramètres que je désire. Quand je l'exécute en ligne de commande, tout marche parfaitement. Mais quand je l'exécute en php, j'ai un problème :

le script s'execute bien mais le résultat final est différent. Normalement à la fin un fichier est créé dans un dossier prédéfini. En ligne de commande le fichier se crée, mais en php rien du tout.

voici mon code php :

Code:
system("mbsa.bat");

j'ai aussi testé avec un exec mais c'est pareil.
L'affichage du traitement mbsa s'inscrit normalement et il n'y a aucun affichage d'erreur, simplement le fichier n'est pas créé.

Si quelqu'un a une idée je suis preneur, c'est pour mon stage qui se termine bientôt. Merci :)
 

enath

Habitué
Les droits sur les dossiers sont parfaitement configurés, sinon j'ai aussi testé sur une autre machine et je rencontre le même problème.
Voici le retour system :

[cpp]D:\xampp\xampp\htdocs\gipi\mbsa>"C:\Program Files\Microsoft Baseline Security Analyzer 2"\mbsacli.exe /target 172.31.30.103 /n SQL+IIS /o 172.31.30.103

[...]Ici je passe les détails du rapport MBSA[...]

D:\xampp\xampp\htdocs\gipi\mbsa>move "C:\Documents and Settings\user\SecurityScans"\172.31.30.103.mbsa "D:\xampp\xampp\htdocs\gipi\mbsa"\172.31.30.103.xml[/cpp]
Le move final ne fonctionne pas puisque le fichier n'est pas créé dans le répertoire SecurityScans à la fin du traitement MBSA.
Une idée ?
 

batchy

Grand Maître
dans ce cas la je pense à un problème avec l'exécutable.

ils disent que ces commandes doivent être exécutées avec comme répertoire courant le répertoire d'installation.
essaye dans ton .bat un
Code:
cd "C:\Program Files\Microsoft Baseline Security Analyzer 2"
avant le lancement.
essaye aussi de voir si la commande start aide ...
 

enath

Habitué
j'y ai pensé également, mais ça ne donne rien, j'ai même essayé avec plein de cd à la suite histoire d'être sûr d'être dans le bon répertoire mais ça n'a rien arrangé.
La commande start n'apporte aucun changement :(
Merci quand même de t'intéresser à mon problème...
 

zeb

Modérateur
Je lis "C:\Documents and Settings\user\SecurityScans" dans le rapport.
C'est le dossier de l'utilisateur "user". Mais le script que tu lances, il est exécuté par le serveur PHP, qui s'exécute sans doute sous un login différent. Il faut sans doute aller chercher ton fichier dans le dossier "SecurityScans" de l'utilisateur "PHP" (moi, je me comprends :D )

Dans MBSA.BAT, essaie ça :
Code:
@ECHO OFF
ECHO Test pour MBSA
ECHO Utilisateur: %USERNAME%
CD "C:\Program Files\Microsoft Baseline Security Analyzer 2"
mbsacli.exe /target 172.31.30.103 /n SQL+IIS /o 172.31.30.103
DIR "C:\Documents and Settings\%USERNAME%\SecurityScans"
PAUSE

(Désolé, Batchy, je mets des majuscules partout quand j'écris en batch, (trop) vieille habitude)
 

enath

Habitué
bonne idée zeb , je suis en train de tester.
le mot 'user' je l'ai mis dans l'exemple de code sur le forum pour ne pas mettre mon vrai nom, mais le principe reste le même.
je vous tiens au courant
 

zeb

Modérateur
Oui, je m'en doutais. Et c'est bien normal.
Regarde ligne 6, je ne présume de rien, je laisse le système se débroullier ;)
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 128
Messages
6 717 852
Membres
1 586 373
Dernier membre
https://forum.tomshardwar
Partager cette page
Haut