【发布时间】:2023-03-25 18:59:01
【问题描述】:
$cominfo = [pscustomobject]@{
HostID = $Computer
prodinfo = $DisplayName
version = $Version
InstallDate = $Date
Producer = $Publisher
UninstallString = $UninstallString
InstallLocation = $InstallLocation
InstallSource = $InstallSource
HelpLink = $HelLink
EstimatedSizeMB = [decimal]([math]::Round(($thisSubKey.GetValue('EstimatedSize') * 1024) / 1MB, 2))
}
if(Test-Path -path '.\AssetManagement.xml'){
$xml = import-clixml -Path '.\AssetManagement.xml'
}
$xml += $cominfo | select *
Export-Clixml -Path '.\AssetManagement.xml' -InputObject $xml
$cominfo.pstypenames.insert(0, 'System.Software.Inventory')
Write-Output $cominfo
上面的代码片段显示了自定义对象组件以及随后转换为 XML 并保存/附加到现有 XML 文件(如果文件存在)的尝试,特别是,
if(Test-Path -path '.\AssetManagement.xml'){
$xml = import-clixml -Path '.\AssetManagement.xml'
}
$xml += $cominfo | select *
Export-Clixml -Path '.\AssetManagement.xml' -InputObject $xml
是我一直遇到问题的代码片段。我绝不是 powershell 专家,这是我个人的家庭资产管理。我尝试了在网上找到的几个变体,这个 sn-p 是最后一个,但没有一个实现目标。
我在这里搜索并尝试过的所有方法都没有像我预期的那样生成单个 XML 文件,但我总是得到按预期显示的输出。我希望这里有人可以帮助我将每个自定义对象输出到 xml 文件(必要时创建文件,否则附加到现有文件),而不仅仅是显示提示。
我确实尝试过诸如“测试测试一二三”之类的东西 | export-clixml '.\testing.xml' 并且这些命令按预期工作,所以我知道我的系统应该允许将这些文件写入当前目录,只是不确定为什么它不适用于该自定义 powershell 对象输出...... ....
【问题讨论】:
-
见
convertto-xml -? -
另外,请参阅 Export-CliXml。
标签: xml powershell save