PowerShell ConvertTo-XML错误

时间:2013-06-08 17:43:36

标签: xml arrays powershell

我在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   + $资产|的ConvertTo的XML   + ~~~~~~~~~~~~~       + CategoryInfo:NotSpecified :( :) [ConvertTo-Xml],XmlException       + FullyQualifiedErrorId:System.Xml.XmlException,Microsoft.PowerShell.Commands.ConvertToXmlCommand

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

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

1 个答案:

答案 0 :(得分:2)

你可以尝试:

$Asset | ConvertTo-Xml -Depth 2