我想从带有参数的PowerShell脚本中调用“PS App Deployment Toolkit”-package(Link)。
上面提到的“PS App Deployment Toolkit”-package是一个powershell脚本,我想用参数调用它。 (从.ps1调用.ps1)
我想使用splatting参数。
我想等待剧本结束
我想从脚本中获取退出代码。
这是我的代码,它不起作用:
$InstallStatus = Start-Process -FilePath "PowerShell.exe" -ArgumentList "$PSADToolKitInstallWrapper","-DeploymentType Install -DeployMode Silent -AllowRebootPassThru -TerminalServerMode" -Wait -PassThru
此行可以正常工作,但我想在上面的示例中设置参数:
maplistner
你可以帮助我让这个工作吗?
谢谢!
答案 0 :(得分:2)
我认为你不需要这么努力。为什么要从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
动态变量)。