使用 PowerShell 回收 IIS 应用程序池:“调用回收时出现异常”

2024-01-21

看起来最近的 Windows 更新破坏了我用来回收 IIS6 应用程序池的一些功能,因为到目前为止这已经工作了几个月。

Exception calling "Recycle" : "Win32: The object identifier does not representException calling "Recycle" : "Win32: The object identifier does not represent a valid object.

我用来回收应用程序池的函数是:

function recycle-pool($strServerName)
{
    $objWMI = [WmiSearcher] "Select * From IIsApplicationPool"
    $objWMI.Scope.Path = "\\" + $strServerName + "\root\microsoftiisv2"
    $objWMI.Scope.Options.Authentication = 6
    $pools = $objWMI.Get()
    foreach ($pool in $pools)
    {
        $pool.recycle()
        if (!$?)
        {
            Write-Host $pool.name " - ERROR"
        }
        else
        {
            Write-Host $pool.name " - Recycled"
        }
}

知道问题是什么以及我应该如何解决这个问题吗?


最初的问题是针对 IIS6 的,但我在 Windows 2012 上使用 Web 管理模块的 Restart-WebAppPool 遇到了类似的问题。所以我又调用 AppCMD,效果很好:

& $env:windir\system32\inetsrv\appcmd recycle apppool "YOURAPPPOOLNAMEHERE"

有时,您不必过度设计解决方案。希望有一天能对其他人有所帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 PowerShell 回收 IIS 应用程序池:“调用回收时出现异常” 的相关文章

随机推荐