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_Sccm_Mdt - Fatal编程技术网

Powershell 启动过程何时执行?

Powershell 启动过程何时执行?,powershell,sccm,mdt,Powershell,Sccm,Mdt,基本上,我试图将启动进程的退出代码返回到脚本中,以便在安装失败时MDT/SCCM能够正确失败 一般来说,下面是我使用的代码: $proc = Start-Process -FilePath $setupexe -ArgumentList $setupargs -Wait -Passthrough Exit $proc.ExitCode 我的问题是启动流程何时执行?当我定义$proc或调用$proc.ExitCode时 我试图做的是在if语句中使用退出代码,而不必将该代码存储在另一个变量中(减

基本上,我试图将启动进程的退出代码返回到脚本中,以便在安装失败时MDT/SCCM能够正确失败

一般来说,下面是我使用的代码:

$proc = Start-Process -FilePath $setupexe -ArgumentList $setupargs -Wait -Passthrough
Exit $proc.ExitCode 
我的问题是
启动流程
何时执行?当我定义$proc或调用
$proc.ExitCode

我试图做的是在
if
语句中使用退出代码,而不必将该代码存储在另一个变量中(减少代码混乱)

vs


我不希望再次调用
启动进程
只是为了终止脚本并返回错误代码。

启动进程
将在定义
$proc
时启动进程,并且在退出前不会移动到下一行,因为定义了
-Wait
参数

如果($proc.ExitCode-ne 0){Exit$proc.ExitCode}
这一行将不会导致代码再次运行

你可以用记事本之类的快速程序运行代码,然后在电脑上测试,看看程序什么时候出现

$a = start-process notepad.exe -wait -passthru
$a.exitcode
$proc = Start-Process -FilePath $setupexe -ArgumentList $setupargs -Wait -PassThru
$procexit = $proc.ExitCode
if ($procexit -ne 0) {Exit $procexit}

$proc2 = Start-Process -FilePath $setupexe2 -ArgumentList $setupargs2 -Wait -PassThru
$procexit2 - $proc2.ExitCode
if ($procexit2 -ne 0) {Exit $procexit2}
$a = start-process notepad.exe -wait -passthru
$a.exitcode