如何从Microsoft.IIs.PowerShell.Framework.ConfigurationElement对象中提取文本

时间:2012-02-14 17:36:59

标签: powershell iis-7

如果我在powershell中运行命令:

C:\Get-Website

输出

Name             ID   State      Physical Path                  Bindings
----             --   -----      -------------                  --------
Default Web Site 1               %SystemDrive%\inetpub\wwwroot  http *:80:
                                                                net.tcp 808:*
                                                                net.pipe *
                                                                net.msmq localhost
                                                                msmq.formatname 
                                                                localhost

但是如果我尝试只选择Bindings:

C:\Get-Website | where {$_.Name -eq "Default Web Site"} | select Bindings

它返回:

bindings : Microsoft.IIs.PowerShell.Framework.ConfigurationElement

如何将此对象的内容提取为有用的格式?

3 个答案:

答案 0 :(得分:8)

bindings属性是一个集合,因此您必须使用ExpandProperty参数:

Get-Website -Name "Default Web Site" | select -ExpandProperty Bindings

进一步向下钻取:

get-website -name "Default Web Site" | select -ExpandProperty Bindings | Select -ExpandProperty Collection

答案 1 :(得分:1)

最近,我正在使用类似的命令,但用于列出所有站点及其绑定。在IIS中,这就是我所做的:

get-childItem | 
select * , @{Name="SiteBindings"; Expression = {($_.Bindings.Collection | %{$_.protocol + "  " + $_.BindingInformation} | Out-String).replace("`r","" ) }}

注意replace(“`r”,“”)。如果您需要导出到CSV,则需要它。

答案 2 :(得分:0)

如果您不想从 Get-WebBinding 开始,也可以使用 Get-Website cmdlet。

Import-Module WebAdministration

Get-WebBinding

这将显示所有网站的所有绑定信息,您可以从那里进一步过滤。

这是运行上述命令的示例输出。

protocol             : http
bindingInformation   : *:80:
sslFlags             : 0
isDsMapperEnabled    : False
certificateHash      :
certificateStoreName :
ItemXPath            : /system.applicationHost/sites/site[@name='Default Web Site' and @id='1']
RunspaceId           : b7052f71-a213-437c-a97f-00fb9fa84a7f
Attributes           : {Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute,
                       Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute,
                       Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute,
                       Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute…}
ChildElements        : {}
ElementTagName       : binding
Methods              : {Microsoft.IIs.PowerShell.Framework.ConfigurationMethod,
                       Microsoft.IIs.PowerShell.Framework.ConfigurationMethod,
                       Microsoft.IIs.PowerShell.Framework.ConfigurationMethod,
                       Microsoft.IIs.PowerShell.Framework.ConfigurationMethod…}
Schema               : Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema