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

回到顶部