2012-08-09 138 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 

但不能用於像結合複合物性質。

相關問題