【问题标题】:PowerShell ConvertTo-XML ErrorPowerShell 转换为 XML 错误
【发布时间】:2013-06-08 17:43:36
【问题描述】:

我在 Windows 8 系统上使用 PowerShell v3,在网上找不到任何好的资源来解释我遇到的这个问题。我有以下脚本:

$CIMProperty = Get-CimInstance win32_OperatingSystem
$OS = [PSCustomObject]@{
  Caption = $CIMProperty.Caption
  InstallDate = $CIMProperty.InstallDate
  }

$Asset = [PSCustomObject]@{
  Name = "TSZ"
  OperatingSystem = $OS
  }

$Asset | ConvertTo-Xml

当我运行它时,我收到以下错误:

ConvertTo-Xml : 文件意外结束。 以下 元素未关闭:对象。第 9 行,位置 12. 在 C:\Users\Ben\SkyDrive\Documents\Scripting\Inventory\Troubleshooting-Compact.ps1:12 字符:10 + $资产 |转换为 XML + ~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [ConvertTo-Xml], XmlException + FullyQualifiedErrorId : System.Xml.XmlException,Microsoft.PowerShell.Commands.ConvertToXmlCommand

我做了一堆测试,发现只有当我的 $OS 对象有多个属性时才会发生这种情况。为每个属性定义类型名似乎没有帮助。如果我使用自己的 $OS = "test","123" 之类的数组,则没有错误。

如果我设置 $OS = Get-CimInstance win32_OperatingSystem 没有错误,并且使用 Export-CliXml cmdlet 也可以。但是,我正在尝试生成格式良好的 XML 文档,该文档在显示在自定义 XML 查看器中之前需要最少的处理。

【问题讨论】:

    标签: xml arrays powershell


    【解决方案1】:

    你可以试试:

    $Asset | ConvertTo-Xml -Depth 2
    

    【讨论】:

    • 哈!看那个。我不知道为什么我没有考虑更多地查看可能的参数。我假设默认深度没有最大值。愿别人有一天能从我的菜鸟错误中吸取教训。谢谢!
    猜你喜欢
    • 2017-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-20
    • 2013-03-02
    • 2020-06-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多