Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.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 污染管道的故障排除_Powershell_Pipeline - Fatal编程技术网

Powershell 污染管道的故障排除

Powershell 污染管道的故障排除,powershell,pipeline,Powershell,Pipeline,我有一个脚本,其中该代码失败,退出代码为-2145124322 $new.ExitCode > $null $filePath = "wusa.exe" $argumentList = "`"\\PX_SERVER\Rollouts\Microsoft\VirtualPC\Windows6.1-KB958559-x64-RefreshPkg.msu`" /quiet /norestart" $exitCode = (Start-Process -FilePath:$filePath -ar

我有一个脚本,其中该代码失败,退出代码为-2145124322

$new.ExitCode > $null
$filePath = "wusa.exe"
$argumentList = "`"\\PX_SERVER\Rollouts\Microsoft\VirtualPC\Windows6.1-KB958559-x64-RefreshPkg.msu`" /quiet /norestart"
$exitCode = (Start-Process -FilePath:$filePath -argumentList:$argumentList -wait -errorAction:Stop -PassThru).ExitCode
Write-Host $exitCode
现在,主脚本有大约15000行的“其他正在进行的事情”,这些行本来并不完全像这样。变量来自XML,有数据验证和try/catch块等等。因此,我开始提取相关行,将它们放在一个单独的小脚本中,并对变量进行硬编码。在那里,它起作用了,我得到了一个很好的3010退出密码,然后去参加比赛。所以,我把我的工作代码、硬编码变量和所有内容都粘贴到原始脚本中,然后它再次崩溃。 因此,我将代码从它所属的函数中移出,在初始化所有内容之后,在开始处理主循环之前,将其放入。它在那里工作!现在,我必须相信这是通常的“污染管道”,但如果我能找出什么可能导致这一点。我想我的下一步就是开始逐步完成代码,把这个金块放在某个地方,运行测试,如果它能工作,再往下移动,再试一次。嘎! 所以,有人有一些见解。它可能是什么,或者可能是一个改进的测试协议。或者是一些把戏,可以看到整个管道,并以某种方式识别污染

FWIW,我通常使用PoshV2,但我用v4尝试过,结果完全相同。但也许在更高版本中有一些管道监控功能可以帮助进行故障排除

另外,我的理解是,PoSH v2存在负返回码问题,因此它们不可信。但我认为新版本解决了这个问题,对吗?那么,我在v4中得到相同的代码这一事实意味着它对Google有意义吗?到目前为止,我并没有在任何地方发现任何关于退出代码的暗示

祈祷吧

编辑:好的,再多一点数据。我用DuckDuckGo而不是Google搜索了退出代码,找到了这个。 0x8024001E-2145124322 WU E U服务停止操作未完成,因为服务或系统正在关闭。
好的,这是一个方向。我有一些代码可以让我暂时终止一个服务。但这似乎有点苛刻。这不正是像微软第十种安装更新的方式一样,让自动化变得更容易的目的吗?在任何情况下,我都找不到任何迹象表明WUSA有可以避免问题的命令行标志,但我必须相信我做错了什么。

解决了!在尝试不同的事情(包括关闭防火墙等)跟踪了许多不同的错误后,结果表明错误不是服务不会停止,而是服务不会启动。请参见,其中一些15K行代码在我的脚本执行期间会抑制Windows Update,因为Windows Update会导致许多Autodesk展开失败,这就是我代码的全部要点。当然,WUSA需要这项服务。因此,看起来,我不需要在脚本执行期间抑制Windows Update,而只需要在部署任务期间抑制。这将需要几个小时来实现和测试,但完全可行。而且可能更优雅。呜

是的,这一次不是我无意中在管道里大便