短的:
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...
但是当我像这样将它通过管道传输到 Export-CliXml 时:
Get-ChildItem IIS:\Sites | Get-CliXml sites.xml
我对其中的“默认网站”或“MyTestSite”一无所知。=> 字符串和 xml 没有任何共同之处。
当我对 Get-Process 做同样的事情时
Get-Process | Export-CliXml processes.xml
我可以在输出文件中找到我的进程。=> 字符串中的内容可以在 xml 中找到。
为什么 Get-Process 输出与文本和 xml 大致相同,
而 Get-ChildItems IIS:\Sites 一个文本和其他内容作为 xml?
我误解了什么?
我想一个问题可能是我从 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)