Преобразование пользовательского объекта PowerShell в файл XML - PullRequest
0 голосов
/ 27 мая 2020
$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, и это касается моего личного управления домашними активами. Я пробовал несколько вариантов, которые я нашел в Интернете, этот фрагмент был последним, и ни один из них не достиг цели.

Все методы, которые я пробовал из поиска здесь, и Google не создали ни одного файла XML, поскольку я ожидайте, но я всегда получаю вывод, как и ожидалось. Я надеялся, что кто-то здесь может помочь мне вывести каждый настраиваемый объект в файл xml (при необходимости создать файл, в противном случае добавить к существующему), а не только в подсказку дисплея.

Я пробовал такие вещи, как «Тестирование» тестирование один два 3 дюйма | export-cli xml '. \ testing. xml', и эти команды работают по назначению, поэтому я знаю, что моя система должна разрешать запись этих файлов в текущий каталог, просто не знаю, почему он не работает для этой настраиваемой оболочки PowerShell вывод объекта .......

...