Col*_*337 9 scripting powershell sccm sccm-2012-r2
我正在使用 SCCM 2012 应用程序部署来安装软件。特定的安装类型是脚本安装程序,因为 SCCM 一直因 exe 验证错误而失败。该脚本是 powershell,即使由 SCCM 执行也能成功安装软件。
问题是 SCCM 只能从脚本的完成中看到 0 的返回。我试过write-host, return, write-output, 和只是一个带有软重启代码的行项目。SCCM 似乎没有读取它们,因为应用程序执行日志捕获了 0 的返回值。
您如何从 powershell 输出返回代码,以便 SCCM 可以解释它们?
powershell 退出代码存在一个已知问题(请参阅此答案的结尾),在将 powershell 安装脚本与 SCCM 一起使用时可能会出现该问题。为了解决这个问题,我采取了两种措施:
powershell.exe显式调用来运行 powershell 脚本。 [System.Environment]::Exit().通过这两个措施,我没有遇到与退出代码相关的问题。这是一个巨大的胜利,因为对安装脚本的退出代码进行故障排除是一个缓慢的过程,因为您必须等待 SCCM 客户端为每次故障排除迭代调用您的脚本。
下面是批处理文件和 powershell 脚本的样子:
Install-Application.batpowershell.exe .\Install-Application.ps1
exit /b %errorlevel%
Run Code Online (Sandbox Code Playgroud)
Install-Application.ps1try
{
# do a bunch of installation stuff
if ( $rebootNeeded )
{
[System.Environment]::Exit(3010)
}
[System.Environment]::Exit(0)
}
catch
{
[System.Environment]::Exit(1)
}
Run Code Online (Sandbox Code Playgroud)
以下是我们如何知道退出代码不可靠:
| 归档时间: |
|
| 查看次数: |
31972 次 |
| 最近记录: |