我看到很多的脚本进行回收运行IIS7,但有没有办法来检查Web服务器上的应用程序池,使用PowerShell,Web应用程序池正在运行或停止? 我似乎无法找出一种方法来远程有GET-WebAppPoolState回报的应用程序池,状态我的谷歌福一直没能拿出一个替代品。 我可以远程获得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
例:
$appPoolName = "SomeAppPoolName"
$appPoolStatus = Invoke-Command -ComputerName RemoteHostName { param($apn) Import-Module WebAdministration; Get-WebAppPoolState $apn} -Args $appPoolName
如果你想漂亮了您可以使用此:
Invoke-Command -ComputerName RemoteHostName -ScriptBlock { Get-WebAppPoolState | % { return @{($_.itemxpath -split ("'"))[1]="$($_.value)" } }}
文章来源: How to remotely check the status of a web application pool with PowerShell?