我有一个针对一组网络服务器使用Invoke-Command
的脚本。某些服务器安装了不同版本的PowerShell。我必须编写scriptblock,以便检查PowerShell版本并在检测到PowerShell 2.0安装时使用较旧的命令。不幸的是我对PowerShell 2.0并不是很熟悉......这就是我遇到的问题:
Import-Module WebAdministration
$sites = Get-ChildItem IIS:\sites
在PowerShell 3中我可以说$bindings = $sites.Bindings.Collection.BindingInformation
(它将包含应用程序池的IP和端口)。但是,在PowerShell 2中,如果我尝试相同的操作,则调用$bindings
不会返回任何内容。如果我在PowerShell 2中调用$sites
,我仍会返回一个信息表,但$sites.Name
例如不会返回任何内容。
修改
我找到了一种方法来获取我想要的数据:
$sites | select -Expand Bindings |
select -Expand Collection |
select -Expand BindingInformation
有更好的方法吗?