PowerShell: como converter um objeto COM em um tipo de interoperabilidade .NET?

Como descrito na minha perguntaCriar imagem ISO usando o PowerShell: como salvar o IStream em arquivo?, no PowerShell, crio umIStream objeto da seguinte maneira:

$is = (New-Object -ComObject IMAPI2FS.MsftFileSystemImage).CreateResultImage().ImageStream

Este objeto é do tipo (PowerShell)System.__ComObject. E de alguma forma, o PowerShell sabe que é umIStream:

PS C:\> $is -is [System.Runtime.InteropServices.ComTypes.IConnectionPoint]
False
PS C:\> $is -is [System.Runtime.InteropServices.ComTypes.IStream]
True

No entanto, uma conversão para esse tipo falha:

PS C:\> [System.Runtime.InteropServices.ComTypes.IStream] $is
Cannot convert the "System.__ComObject" value of type "System.__ComObject" to type "System.Runtime.InteropServices.ComT
ypes.IStream".
At line:1 char:54
+ [System.Runtime.InteropServices.ComTypes.IStream] $is <<<<
    + CategoryInfo          : NotSpecified: (:) [], RuntimeException
    + FullyQualifiedErrorId : RuntimeException

Como faço para que essa conversão funcione sem usar o código C #?

Atualizar Aparentemente, esta conversão não pode funcionar, como diz a resposta de x0

Agora, meu objetivo é passar issoIStream Objeto COM para algum código C # (parte do mesmo script do PowerShell usandoAdd-Type), onde se tornaria um objeto .NET do tipoSystem.Runtime.InteropServices.ComTypes.IStream. Isso é possível? Caso contrário, que alternativas tenho?

questionAnswers(4)

yourAnswerToTheQuestion