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.")
如果您有所有应用程序池的名称,则可以在脚本中使用iisapp.vbs(在 systemroot\system32 中)来重新启动它们。
我最终为 IIS6 使用了以下 VBScript:
它的优点是不需要事先知道应用程序池的名称,但您必须启用 WMI。
IIS7 的版本:
资源: 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/使用 iis39s-wmi-provider 管理站点/
如果您需要将它们全部回收,您还不如 IISReset。
或者(例如,如果这是一个 FTP 保存练习),您可以尝试只重新启动 WWW 发布服务。