【问题标题】:powershell Get-ChildItem iis:\sites | Export_CliXml sites.xml doesn't result in same as string outputpowershell Get-ChildItem iis:\sites | Export_CliXml sites.xml 不会产生与字符串输出相同的结果
【发布时间】:2012-08-09 08:13:10
【问题描述】:

短:

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 的输出与 text 和 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)

【问题讨论】:

    标签: iis powershell get-childitem


    【解决方案1】:

    有人可以确认或否认

    get-childitem iis:\sites
    

    返回一个包含大量对象(不是字符串和整数)的对象
    当它通过管道传输到

    export-clixml
    

    代码将对每个属性执行 ToString 并为它们返回类型名称。

    如果是上述情况(可能是),解决方案是

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

    但不适用于 Binding 等复杂属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-20
      • 2021-08-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多