Назад | Перейти на главную страницу

Как переработать все пулы приложений на IIS6 без iisreset?

Есть ли способ перезапустить все пулы приложений на сервере 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.