PowerShell启动过程与泼溅
我想从具有参数的PowerShell脚本调用“PS App Deployment Toolkit”包(Link)。PowerShell启动过程与泼溅
提到的“PS应用程序部署工具包” - 包是一个powershell脚本,我想用参数调用。 (从.ps1调用.ps1)
我想使用splatting作为参数。
我想等待脚本结束。
我想从脚本中获取退出代码。
这里是我的代码,这是行不通的:
$PSADToolKitInstallWrapper = "C:\Temp\MyPackage\PS-AppDeploy.ps1" $PSADToolKitParameters = @{
"DeploymentType" = "Uninstall";
"DeployMode" = "Interactive";
"AllowRebootPassThru" = $True;
"TerminalServerMode" = $False;
"DisableLogging" = $False;
}
$InstallStatus = Start-Process -FilePath "PowerShell.exe" -ArgumentList $PSADToolKitInstallWrapper @PSADToolKitParameters -Wait -PassThru
Write-Host "Exit-Code: $($InstallStatus.ExitCode)"
此线将正常工作,但我想在上面的例子中,设置参数,如:
$InstallStatus = Start-Process -FilePath "PowerShell.exe" -ArgumentList "$PSADToolKitInstallWrapper","-DeploymentType Install -DeployMode Silent -AllowRebootPassThru -TerminalServerMode" -Wait -PassThru
请你帮助我得到这个工作?
谢谢!
回答:
我认为你不需要这么努力。为什么在PowerShell脚本中运行powershell.exe
?您已经在运行PowerShell。只要运行所需的命令行:
$PSADToolKitParameters = @{ "DeploymentType" = "Uninstall"
"DeployMode" = "Interactive"
"AllowRebootPassThru" = $True
"TerminalServerMode" = $False
"DisableLogging" = $False
}
C:\Temp\MyPackage\PS-AppDeploy.ps1 @PSADToolKitParameters
如果你想运行的路径和/或文件名的脚本包含空格,然后调用运营商(&
)调用它,并且引用的文件名;例如:
& "C:\Temp\My Package\PS-AppDeploy.ps1" @PSADToolKitParameters
检查脚本的结果取决于脚本返回的内容。如果返回的输出对象,那么你可以简单地给它分配:
$output = C:\Temp\MyPackage\PS-AppDeploy.ps1 ...
如果脚本运行,设置退出代码的可执行文件,检查$LASTEXITCODE
变量的值(这是类似于%ERRORLEVEL%
动态变量在cmd.exe
)。
以上是 PowerShell启动过程与泼溅 的全部内容, 来源链接: utcz.com/qa/263702.html