¿Hay alguna forma de manipular el contenido del archivo zip en la memoria con Powershell?

Actualmente estoy tratando de escribir una función de Powershell que funcione con la salida del cmdlet de Lync Powershell "Export-CsConfiguration -AsBytes". Cuando se usa la comunicación remota implícita de Powershell con los Cmdlets de Lync, el indicador -AsBytes es la única forma de trabajar el cmdlet Export-CsConfiguration, y devuelve una matriz de bytes, que, si lo escribe en el disco con "Set-Content -Encoding Byte" , da como resultado un archivo zip.

Me pregunto si hay una manera de expandir el contenido de la matriz de bytes en los dos archivos que están contenidos en ese zip, pero solo hacerlo en la memoria. No estoy realmente interesado en mantener el archivo zip por mucho tiempo, ya que cambia con frecuencia, y algo sobre escribir el contenido del archivo en el disco solo para leerlo de nuevo para que pueda hacer algo con el contenido sin comprimir parece terriblemente incorrecto a mi.

Entonces, ¿hay alguna manera de hacer algo como esto que evite las escrituras en el disco:

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

En lugar de hacer:

$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

¿O soy SOL?

Respuestas a la pregunta(2)

Su respuesta a la pregunta