Est-il possible de recycler un pool d'applications IIS7 à partir de la ligne de commande, sur une autre machine?
J'ai trouvé APPCMD ( appcmd recycle apppool my-app-pool
), mais il ne fonctionne que sur l'hôte sur lequel il est exécuté, AFAICT.
J'ai entendu une rumeur selon laquelle il pourrait y avoir un moyen de le faire avec Powershell, mais je n'en sais rien, et je ne suis apparemment pas très bon pour le googler.
J'utilise Vista / Server 2008, si cela importe.
EDIT: J'ai trouvé quelque chose appelé WinRM qui, selon quelqu'un, est capable d'exécuter APPCMD lui-même, mais je ne sais pas encore exactement comment.
Psexec \\computer c:\windows\system32\inetsrv\appcmd.exe" recycle apppool AppPoolName
Pour le faire à distance à partir de PowerShell, vous devez utiliser la communication à distance PowerShell ou utiliser WMI.
C'est en fait très simple à l'aide de l'applet de commande Invoke-WMIMethod PowerShell, mais vous devez spécifier
-Authentication PacketPrivacy
... et si vous devez spécifier des informations d'identification différentes, vous pouvez le faire avec le paramètre-Credential (Get-Credential)
... voici un exemple:J'ai écrit une belle fonction pour récapituler tout cela: http://poshcode.org/2466
la source
Si la ligne de commande est votre choix, PsExec semble être la solution, mais pour les tâches critiques, je ne le recommanderais pas. La raison est la suivante: PsExec a des problèmes avec plusieurs exécutions.
Je préfère utiliser l'API à de telles fins.
la source
Semblable à la réponse de @ Jeff, avec Powershell à distance, ce serait:
Enter-PSSession -ComputerName <your server> -Credential <username, or (Get-Credential)>
Puis dans la session interactive, puis:
appcmd recycle apppool my-app-pool
pour redémarrer le pool d'applications.
la source
Recyclez AppPool dans PowerShell
Dans cet exemple: MSExchangeSyncAppPool
la source