wusa静默安装错误

时间:2015-04-08 11:22:42

标签: powershell updates

我正在尝试使用Windows6.1-KB2506143-x64.msu在Windows 7上自动更新Powershell,并且还有一段时间。以下代码在独立的ps1文件中正常工作。它适用于我的主ps1文件。但是当从模块运行时它会失败,退出代码为-2145124341。这是在PS v2中,其中负退出代码处理错误,因此该数字可能是无用的,并且FWIW我有很多其他40种不同类型的安装程序,可以使用此模块。但是,这是我第一次尝试自动化msu文件,所以也许这里有一个我尚未发现的已知交互?在这个工作的根ps1文件和它没有的模块之间有成千上万行代码,因此追踪触发错误的内容将是一个没有某种跟踪的野兽至少。所以,任何人都知道我应该从哪里开始?

$filePath = 'wusa.exe'
$argumentList = '"\\PX_SERVER\Rollouts\Microsoft\Windows6.1-KB2506143-x64.msu" /quiet /norestart'
$exitCode = (Start-Process -filePath:$filePath -argumentList:$argumentList -wait -errorAction:stop -passThru).exitCode

此外,运行wusa.exe会在脚本文件夹中留下一些碎片,但只有在从模块运行时才会出现。这是msu文件的问题,还是wusa中的一个错误?或者它是否指出了导致问题的原因? 我曾希望让这个更新能够启用一些新功能,但是在无法自动化和垃圾被遗忘之间,我非常接近放弃那条路径,并且继续以v2为目标。但希望有人可以指出我正确的方向,因为这根本不是我的首选解决方案。

1 个答案:

答案 0 :(得分:0)

一读时有些难以理解:

  • Start-process的ArgumentList参数需要ARRAY才能正常工作:

    $argumentList =  @( "\\PX_SERVER\Rollouts\Microsoft\Windows6.1-KB2506143-x64.msu", "/quiet", "/norestart" )
    
  • wusa.exe接受一个日志参数:/ log:c:\ fso \ install.log你可以将这个特定软件包的脚本用于检查会发生什么吗?

  • 一个试图更新powershell的powershell脚本......我不太确定这是为了工作......这是唯一一个我会用另一种scrpting语言备份的情况(人们,请指正如果我错了......)

请告诉我wusa.exe / log命令的结果,谢谢