Есть ли способ перезапустить все пулы приложений на сервере IIS6 сразу без использования iisreset
или переработка каждого вручную?
Если у вас есть имена всех пулов приложений, вы можете использовать iisapp.vbs (в systemroot \ system32) в скрипте, чтобы перезапустить их все.
iisapp /a NameOfAppPool /r
В итоге я использовал следующий VBScript для IIS6:
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/managing-sites-with-iis39s-wmi-provider/
Если вам нужно их все переработать, вы можете также IISReset.
В качестве альтернативы (если это, например, упражнение по сохранению FTP), вы можете попробовать перезапустить только службу публикации WWW.