我在运行 IIS7 的 Web 服务器上看到很多用于回收应用程序池的脚本,但是有没有办法使用 PowerShell 检查 Web 应用程序池是正在运行还是已停止?我似乎无法找到一种方法来远程让 Get-WebAppPoolState 返回应用程序池的状态,而且我的 Google-fu 也无法找到替代方案。我可以远程让 gwmi 工作并回收或启动我的应用程序池,但理想情况下我只想在应用程序池实际停止时运行它。
我是否需要使用 PSExec 来解决这个问题,还是有一种替代方案可以使用类似于 gwmi 的方法,并使用一行命令来调用 IIS7 服务器上的应用程序池并提供状态?
您可以使用 Invoke-Command 调用远程计算机上的 Get-WebAppPoolState cmdlet。
$appPoolStatus = Invoke-Command -ComputerName RemoteHostName {Import-Module WebAdministration; Get-WebAppPoolState DefaultAppPool}
$appPoolStatus.Value
请注意,如果您要使用调用计算机上本地定义的变量,则必须根据规则处理它们。这个链接是一篇很好的文章,解释了它们:
http://blogs.msdn.com/b/powershell/archive/2009/12/29/arguments-for-remote-commands.aspx http://blogs.msdn.com/b/powershell/archive/2009/12/29/arguments-for-remote-commands.aspx
Example:
$appPoolName = "SomeAppPoolName"
$appPoolStatus = Invoke-Command -ComputerName RemoteHostName { param($apn) Import-Module WebAdministration; Get-WebAppPoolState $apn} -Args $appPoolName
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)