Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell CliXml序列化/反序列化丢失类型_Powershell_Serialization_Powershell 4.0 - Fatal编程技术网

Powershell CliXml序列化/反序列化丢失类型

Powershell CliXml序列化/反序列化丢失类型,powershell,serialization,powershell-4.0,Powershell,Serialization,Powershell 4.0,下面的小函数显示,在序列化/反序列化操作期间,我丢失了一个参数的Scriptblock类型 Function CliXMLPOC ([String]$p1, [scriptblock]$p2) { # $PSBoundParameters is an automatic var containing bound parameters Write-Host "BEFORE Members are : $($PSBoundParameters["p1"].GetType()), $($PSB

下面的小函数显示,在序列化/反序列化操作期间,我丢失了一个参数的
Scriptblock
类型

Function CliXMLPOC ([String]$p1, [scriptblock]$p2)
{
  # $PSBoundParameters is an automatic var containing bound parameters
  Write-Host "BEFORE Members are : $($PSBoundParameters["p1"].GetType()), $($PSBoundParameters["p2"].GetType())"
  $serialized = [System.Management.Automation.PSSerializer]::Serialize($PSBoundParameters)
  $deserialized = [System.Management.Automation.PSSerializer]::Deserialize($serialized)
  Write-Host "AFTER Members are : $($deserialized["p1"].GetType()), $($deserialized["p2"].GetType())"
}

CliXMLPOC "Toto" {write-host "coucou"}
结果如下:

BEFORE Members are : string, scriptblock
AFTER Members are : string, string
有谁能解释一下,帮我找回预期的结果吗

BEFORE Members are : string, scriptblock
AFTER Members are : string, scriptblock

我99%肯定这是一个错误。我可以重新创建问题,但找不到解决方法。我已经提交了一个错误报告来连接,所以请随意添加更多信息。该错误仍然存在于PowerShell V5.0中