Очевидной попыткой было бы просто указать путь к переменной:
PS Home:\> $xmldata = gci | ConvertTo-Xml
PS Home:\> Import-Clixml Variable:\xmldata
Import-Clixml : Cannot open file because the current provider (Microsoft.PowerShell.Core\Variable) cannot open a file.
At line:1 char:14
+ Import-Clixml <<<< Variable:\xmldata
+ CategoryInfo : InvalidArgument: (:) [Import-Clixml], PSInvalidOperationException
+ FullyQualifiedErrorId : ReadWriteFileNotFileSystemProvider,Microsoft.PowerShell.Commands.ImportClixmlCommand
... что, к сожалению, не удается. Поэтому я предполагаю, что на самом деле не существует способа, который бы работал без временных файлов.
Суть ConvertTo-XML
состоит в том, чтобы разрешить дальнейшую обработку XML в PowerShell после преобразования объекта в XML. Итак, вопрос в том, почему вы не можете просто внести изменения в объект напрямую, вместо того, чтобы манипулировать XML и преобразовывать его обратно?
В противном случае вы все еще можете заключить временные файлы в функцию.