Ist es möglich, einen IIS7-App-Pool über die Befehlszeile auf einem anderen Computer zu recyceln?
Ich habe APPCMD ( appcmd recycle apppool my-app-pool
) gefunden, aber es funktioniert nur auf dem Host, auf dem es ausgeführt wird, AFAICT.
Ich habe ein Gerücht gehört, dass es eine Möglichkeit geben könnte, dies mit Powershell zu tun, aber ich weiß nichts darüber, und ich bin anscheinend nicht sehr gut darin, danach zu googeln.
Ich verwende Vista / Server 2008, wenn das wichtig ist.
EDIT: Ich habe etwas namens WinRM gefunden , von dem jemand behauptet, dass es APPCMD selbst ausführen kann, aber ich weiß noch nicht genau, wie.
Psexec \\computer c:\windows\system32\inetsrv\appcmd.exe" recycle apppool AppPoolName
Um dies von PowerShell aus zu tun, müssen Sie entweder PowerShell-Remoting oder WMI verwenden.
Die Verwendung des PowerShell-Cmdlets Invoke-WMIMethod ist eigentlich sehr einfach, aber Sie müssen Folgendes angeben
-Authentication PacketPrivacy
... und wenn Sie andere Anmeldeinformationen angeben müssen, können Sie dies mit dem Parameter tun-Credential (Get-Credential)
... hier ein Beispiel:Ich habe eine nette Funktion geschrieben, um das alles zusammenzufassen: http://poshcode.org/2466
quelle
Wenn die Befehlszeile Ihre Wahl ist, scheint PsExec die Lösung zu sein, aber für geschäftskritische Aufgaben würde ich es nicht empfehlen. Der Grund ist folgender: PsExec hat Probleme mit mehreren Läufen.
Ich bevorzuge es, API für solche Zwecke zu verwenden.
quelle
Ähnlich wie bei der Antwort von @ Jeff wäre es mit Powershell-Remoting:
Enter-PSSession -ComputerName <your server> -Credential <username, or (Get-Credential)>
Dann in der interaktiven Sitzung, dann:
appcmd recycle apppool my-app-pool
um den App-Pool neu zu starten.
quelle
Bereiten Sie AppPool in PowerShell auf
In diesem Beispiel: MSExchangeSyncAppPool
quelle