我正在尝试编写一个脚本来在多台计算机上安装软件。问题是,它们必须按特定顺序安装,我需要知道第一次安装成功,然后再运行第二次。
这是重要的代码:
[...]
# source_one
$Argumente = @("/i", $path_to_source, "/qb", "ADDLOCAL=ALL")
if (!$visWeb_upToDate) {
Write("VIS Web-Client Installation...")
$procWeb = Start-Process msiexec.exe -ArgumentList $Argumente -Verb runAs -PassThru
$procWeb.WaitForExit()
Write-Debug($procWeb.ExitCode)
if ($procWeb.ExitCode -eq 0){
Write("... erfolgreich.")
$visWeb_upToDate = $true;
}
else {
Write-Error("... nicht erfolgreich.")
Write-Error("Bitte Clients manuell installieren.")
}
}
# source_two
if ($visWeb_upToDate -and !$vis64_upToDate){
Write("VIS 64-Bit Client Installation...")
$Argumente[1] = $path_to_another_source
$procWeb64 = Start-Process msiexec.exe -ArgumentList $Argumente -Verb runAs -PassThru
$procWeb64.WaitForExit()
Write-Debug($procWeb64.ExitCode)
if ($procWeb64.ExitCode -eq 0){
Write("... erfolgreich.")
$vis64_upToDate = $true
}
else {
Write-Error("... nicht erfolgreich.")
Write-Error("Bitte 64-Bit Client manuell installieren.")
}
}
[...]
我没有$procWeb.ExitCode
上 Windows7 Powershell。在 Win8 上它工作得很好并且安装source_one
并且source_two
只有在第一个成功的情况下。
有人知道如何解决这个问题,还是有其他方法可以$visWeb_upToDate = $true
为这两个系统设置?
提前谢谢了。