Iis-6

如何在沒有 iisreset 的情況下回收 IIS6 上的所有應用程序池?

  • May 29, 2012

有沒有辦法一次性回收 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

引用自:https://serverfault.com/questions/388277