Tag: powershell sdk

自定义PowerShell主机并将PSObject转换回基本类型

托管PowerShell运行时是否可以将PSObject转换回其原始类型? 例如: 我有一个cmdlet调用WriteObject并在管道中推送一个ClassXzy集合。 当我从主机端调用PowerShell.Invoke时,我检索了一个带有BaseObject属性的PSObject集合。 将BaseObject为ClassXyz失败。 有没有办法将每个属性值映射到其对应的原始对象? 我假设PowerShell以某种方式执行此操作,因为您可以将PSObject传递给cmdlet并将它们转换为参数类型。 但是怎么样? 我花时间用reflection器撕裂了PS组件,但还没有真正确定这种魔法是如何发生的。 有任何想法吗? 编辑:我忘记了一个非常重要的细节。 我正在测试的PSObject是一个远程对象,因此BaseObject类型被命名为Deserialized.ClassXyz 。 这就是为什么我看到这种奇怪的行为。