2012-03-08 56 views
2

我想使用PowerShell来拉动安装的任何网站的主机头。有一次我下来,我要特意找hostHeaders只使用端口80和443如何使用PowerShell获取网站HostHeader

到目前为止,我能够使用的网站

get-webbinding cmdlet

从拉一些信息网站,但我不确定如何使用它来查询网站的HostHeader信息。在get-webbinding命令的输出中,我将主机头信息看作bindingInformation列的一部分,但我不确定如何获取主机头信息。

然而,当我通过

get-webbinding -HostHeader (hostHeaderName)

我得到的信息反馈查询网站,所以我相信这是使用get-webbinding查询只对hostHeader信息的方式。

如果有另一种方式获取此信息,请让我知道。我也没有运气试图用

get-website

回答

7

你将不得不拆就:bindingInformation并获得最后一部分:

Get-WebBinding | select -expand bindingInformation | %{$_.split(':')[-1]} 
+0

非常感谢。这是我正在寻找的。 [-1]是否总是抓住.split函数中的最后一项? – 2012-03-08 20:58:19

+0

@colo_joe - 是$ a [-1]是数组$ a的最后一个元素,$ a [-2]是第二个数组,最后依此类推。 – manojlds 2012-03-08 21:14:03

3

这会给你两个属性的对象:端口和主机头(每个绑定信息):

Get-WebBinding | Where-Object {$_.bindingInformation -match '80|443'} | ForEach-Object{ 

    $port,$hh = $_.bindingInformation.split(':')[1..2] 

    New-Object PSObject -Property @{ 
     Port=$port 
     HostHeader=$hh 
    } 
}