最近的 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 上使用 WebAdministration 模块的 Restart-WebAppPool 遇到了类似的问题。所以我退回到调用 AppCMD,并且效果很好:
& $env:windir\system32\inetsrv\appcmd recycle apppool "YOURAPPPOOLNAMEHERE"
有时,您不必过度设计解决方案。希望有一天能帮助别人。
关于winapi - 使用 PowerShell : "Exception calling Recycle" 回收 IIS 应用程序池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/590094/