Есть ли способ управления содержимым zip-файлов в памяти с помощью Powershell?

В настоящее время я пытаюсь написать функцию powershell, которая работает с выводом командлета Lync powershell «Export-CsConfiguration -AsBytes». При использовании неявного удаленного взаимодействия Powershell с командлетами Lync флаг -AsBytes является единственным способом работы командлета Export-CsConfiguration и возвращает массив байтов, который, если вы записываете его на диск с помощью «Set-Content -Encoding Byte» , приводит к zip-файлу.

Мне интересно, есть ли способ расширить содержимое байтового массива на два файла, которые содержатся в этом zip, но сделать это только в памяти. Я не очень заинтересован в том, чтобы долго хранить zip-файл, так как он часто меняется, и что-то в отношении записи содержимого файла на диск только для последующего чтения, чтобы я мог что-то сделать с несжатым содержимым, кажется ужасно неправильным мне.

Так есть ли что-то подобное, что позволяет избежать записи на диск:

$ZipFileBytes = Export-CsConfiguration -AsBytes
# Made up Powershell function follows:
[xml]DocItemSet = Extract-FileFromInMemoryZip -ByteArray $ZipFileBytes -FileInsideZipIWant "DocItemSet.xml"
# Do stuff with XML here

Вместо того, чтобы делать:

$ZipFileBytes = Export-CsConfiguration -AsBytes | Set-Content -Encoding Byte "CsConfig.zip"
[System.Reflection.Assembly]::LoadWithPartialName('System.IO.Compression.FileSystem')
[System.IO.Compression.ZipFile]::ExtractToDirectory("CsConfig.zip", "C:\Temp")
[xml]$DocItemSet = New-Object Xml.XmlDocument
$DocItemSet.Load("C:\Temp\DocItemSet.xml")
# Do stuff with XML here

Или я SOL?