Iis-6
如何在沒有 iisreset 的情況下回收 IIS6 上的所有應用程序池?
有沒有辦法一次性回收 IIS6 伺服器上的所有應用程序池,而不使用
iisreset
或手動回收每個應用程序池?
我最終為 IIS6 使用了以下 VBScript:
Set oWMI = GetObject _ ("winmgmts:{authenticationLevel=pktPrivacy}!root\MicrosoftIISv2") Set aAppPools = oWMI.ExecQuery("Select * from IIsApplicationPool") For Each oItem in aAppPools WScript.Echo("Recycling " & oItem.Name & "...") oAppPool.Recycle Next WScript.Echo("Recycled " & aAppPools.Count & " Application Pools.")
它的優點是不需要事先知道應用程序池的名稱,但您必須啟用 WMI。
以及 IIS7 的版本:
Set oWebAdmin = GetObject _ ("winmgmts:{authenticationLevel=pktPrivacy}!root\WebAdministration") Set aAppPools = oWebAdmin.InstancesOf("ApplicationPool") For Each oAppPool in aAppPools WScript.Echo("Recycling " & oAppPool.Name & "...") oAppPool.Recycle Next WScript.Echo("Recycled " & aAppPools.Count & " Application Pools.")
資源: http:
//blogs.iis.net/chrisad/archive/2006/08/30/Recycling-Application-Pools-using-WMI-in-IIS-6.0.aspx
http://www.vbsedit.com/scripts /iis/iis6/apps/scr_476.asp
http://msdn.microsoft.com/en-us/library/ms525309(v=vs.90).aspx
http://learn.iis.net/page.aspx/ 162/管理站點-with-iis39s-wmi-provider/
如果您有所有應用程序池的名稱,您可以在腳本中使用iisapp.vbs(在 systemroot\system32 中)重新啟動它們。
iisapp /a NameOfAppPool /r