2008-11-06 15 views
1

Pour un script Windows que j'écris, j'ai besoin de détecter si Apache 2.2 est installé sur la machine, et de trouver le chemin de l'application.Localiser le chemin d'un serveur Apache sur Windows

Une solution que j'ai trouvé est de wget http://localhost:8080/server-info et d'analyser la racine et le fichier de configuration de celui-ci. Cela échouerait si le serveur n'utilisait pas le port 8080

Une autre option serait d'appeler "sc qc Apache2.2" et d'analyser la chaîne de retour. Cela échouerait si le serveur n'est pas installé en tant que service ou utilise un nom différent.

Y a-t-il une meilleure façon de faire cela? Si je me souviens bien, Apache écrit des clés de registre.

Répondre

2

Pas beaucoup d'excellentes options si elles ne l'ont pas installé en utilisant l'installateur. S'ils ont utilisé le MSI/installateur, vous pouvez consulter le Registre:

HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Apache\2.2.2\ServerRoot 
HKEY_CURRENT_USER\SOFTWARE\Apache Software Foundation\Apache\2.2.2\ServerRoot 

Vous pouvez également consulter la liste des processus en cours d'exécution:

WMIC PROCESS get Caption,Commandline,Processid 

Recherchez le fichier EXE approprié. Si, pour une raison quelconque, vous avez besoin du numéro de port, utilisez netstat et recherchez le port approprié.

Aussi, quand vous dites "un script Windows", je suppose que vous utilisez quelque chose de moderne et capable comme Windows Scripting Host (mon préféré) ou PowerShell. Ne vous embêtez même pas avec les fichiers batch.

0

Si vous savez comment les lire à partir d'un script, cela pourrait aider.

Questions connexes