我正在调用Restart-WebAppPool,其中包含可验证的Web应用程序池的名称。当我在脚本的上下文中执行该命令时,它与Cannot find path 'IIS:\AppPools\AppPoolName' because it does not exist.
一起出错。当我在powershell控制台中执行完全相同的命令时,它就像魅力一样运行。
我使用Import-Module WebAdministration
在脚本开头加载WebAdministration模块。我依赖于该模块中的其他命令,在脚本中的许多位置,所有这些命令都成功运行。我正在调用命令之前将我尝试重新启动的应用程序池的名称记录到日志文件中,并且其名称正确并且在错误消息中正确。我正在使用(Get-ItemProperty -Path $SitePath).ApplicationPool
检索应用程序池名称,其中$ SitePath已在整个脚本中用于在相关网站上运行。
非常恼人的是,在尝试重新启动应用程序池之前,我使用(Set-ItemProperty -Path $SitePath -Name "PhysicalPath" -Value $fullAppPath )
将相关应用程序的根目录重置为新的物理路径,这完全正常,因此我知道WebAdministration已加载(最多明显的原因是我无法找到我知道的应用程序池的路径。
我正在尝试重新启动的应用程序池名称(除了在powershell命令提示符下重新启动)显示在Get-ChildItem -Path "IIS:\AppPools"
我还缺少哪些会导致WebAdministration无法找到该应用程序池?