2012-08-09 115 views
0

简称:powershell Get-ChildItem iis: sites | Export_CliXml sites.xml不会导致相同的字符串输出

Get-ChildItem IIS:\Sites 
Get-ChildItem IIS:\Sites | Get-CliXml sites.xml 

回报的一件事是字符串,另一个为XML。为什么?


长:
当我运行

Get-ChildItem IIS:\Sites 

我得到的东西在

Name    ID State Phys... 
Default Web Site 1  Started C:\i... 
MyTestSite  2  Started C:\i... 

行了,但是当我用管道来出口CLIXML像这样:

Get-ChildItem IIS:\Sites | Get-CliXml sites.xml 

我没有得到任何与“默认网站”或“MyTestSite”在里面。 =>字符串和xml没有任何共同之处。

当我做GET-过程相同

Get-Process | Export-CliXml processes.xml 

我能找到我的输出文件的过程。 =>字符串中的内容可以在xml中找到。

为什么Get-Process输出与text和xml差不多,而Get-ChildItems IIS:
我误解了什么?

我想一个问题可能是我从Get-ChildItem iis:\ sites中得到一个异常,但输出仍然生成。 xml输出似乎也没关系。


更新:
当我做

Get-ChildItem IIS:\Sites | select Name,ID,State,PhysicalPath | Get-CliXml sites.xml 

我得到我要找的值。

当我添加绑定

Get-ChildItem IIS:\Sites | select Name,ID,State,PhysicalPath,Bindings | Get-CliXml sites.xml 

只有2个站点进行迭代,我得到一个错误信息。反正xml很好。 (在代码中,我相信一些精心构造的try-catch)

回答

0

有人可以证实或否认

get-childitem iis:\sites 

还给有大量的对象(不是字符串和整数)的对象
当这是管道输送到

export-clixml 

代码将做每个属性一个ToString,并为它们返回类型的名称。

如果以上的情况下(它有可能是)的解决方案是

Get-ChildItem IIS:\Sites | select Name,ID,State,PhysicalPath | Get-CliXml sites.xml 

但不能用于像结合复合物性质。

相关问题