Je voudrais pouvoir rapidement vérifier si un site est en ligne après m'être connecté au bureau de Windows Server 2008 R2 (x64). Je préférerais pouvoir le faire en un seul clic (ou mieux encore, sans cliquer du tout) plutôt que de devoir naviguer dans la structure arborescente de Gestionnaire IIS.
Je peux créer un raccourci vers Gestionnaire IIS et le mettre sur mon bureau, mais comment le forcer à s'ouvrir dans la vue SERVEUR/Nouveaux au lieu de cliquer plusieurs fois pour y arriver ?
Si cela ne peut pas être fait, y a-t-il un autre moyen sans faire de programmation pour mettre un indicateur "en ligne/hors ligne" (de préférence dans la barre système ou sur le bureau) pour chaque site que je veux y mettre ?
Si je dois recourir à la programmation pour cette fonctionnalité apparemment simple, comment puis-je obtenir le statut (démarré ou arrêté) pour un site web IIS spécifique à afficher dans mon programme personnalisé ? Quelle API, fichier ou entrée de registre dois-je lire pour obtenir ces informations de statut ?
Mise à jour
J'ai découvert quelqu'un d'autre avec un fichier .bat qui utilisait l'utilitaire IIS appcmd.exe. Après quelques essais et erreurs en lisant les documents MSDN sur l'utilitaire appcmd.exe, j'ai pu assembler le fichier .bat suivant qui fait bien le travail. La tâche à accomplir était simplement d'obtenir l'état d'un site (ou de plusieurs sites) en 2 clics ou moins depuis le bureau.
@echo off
:Status
Set STATUS1=MAINTENANCE
FOR /F "tokens=*" %%A IN ('%SystemRoot%\System32\inetsrv\appcmd list site /site.name:www.mysite1.com /text:state ^| FIND "Started"') DO SET STATUS1=STARTED
Set STATUS2=MAINTENANCE
FOR /F "tokens=*" %%A IN ('%SystemRoot%\System32\inetsrv\appcmd list site /site.name:www.mysite2.com /text:state ^| FIND "Started"') DO SET STATUS2=STARTED
echo www.mysite1.com: %STATUS1%
echo www.mysite2.com: %STATUS2%
pause
Malheureusement, l'utilitaire n'est pas très bien documenté - j'ai dû y toucher beaucoup pour obtenir le résultat souhaité.
%SystemRoot%\System32\inetsrv\appcmd list site /site.name:www.mysite1.com
C'est la ligne qui obtient le statut, mais en l'exécutant de cette façon, cela renvoie également d'autres choses. Ainsi, pour obtenir uniquement le statut et rien d'autre, un autre paramètre doit être ajouté.
%SystemRoot%\System32\inetsrv\appcmd list site /site.name:www.mysite1.com /text:state
En suivant l'exemple dans le lien, j'ai également pu assembler un menu pour démarrer et arrêter instantanément les sites en appuyant sur une touche, puis ENTRÉE, et afficher ensuite à nouveau le statut des sites - le tout à partir d'un seul fichier .bat.