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