Estou usando uma implantação de aplicativo do SCCM 2012 para instalar o software. O tipo de instalação específico é instalador com script, pois o SCCM continuava falhando devido a erros de validação de exe. O script é powershell e instala o software com sucesso, mesmo quando executado pelo SCCM.
O problema é que o SCCM vê apenas o retorno 0 da conclusão do script. Eu tentei write-host
, return
, write-output
, e apenas um item de linha com o código para uma reinicialização suave. Nenhum deles parece ser lido pelo SCCM, pois o log de execução do aplicativo captura um retorno de 0.
Como você gera códigos de retorno do PowerShell para que o SCCM possa interpretá-los?
powershell
scripting
sccm
sccm-2012-r2
Colyn1337
fonte
fonte
exit 1
no final do script do PowerShell?exit
é umcmd
builtin. Em outros sistemas de implantação, vi arquivos .ps1 executados comstart
oucmd /c powershell.exe somefile.ps1
. Desculpe por spitballing sem acesso a um teste SCCM.Respostas:
Há um problema conhecido com os códigos de saída do PowerShell (consulte o final desta resposta) que pode se manifestar ao usar scripts de instalação do PowerShell com o SCCM. Para solucionar o problema, tomo duas medidas:
powershell.exe
explicitamente.[System.Environment]::Exit()
.Com essas duas medidas, não tive um problema relacionado aos códigos de saída. Essa é uma grande vitória, pois a solução de problemas dos códigos de saída dos scripts de instalação é um processo lento, pois é necessário aguardar o cliente do SCCM chamar seu script para cada iteração da solução de problemas.
Aqui está a aparência do arquivo em lote e do script do PowerShell:
Install-Application.bat
Install-Application.ps1
Por que os códigos de saída não são confiáveis quando o SCCM chama scripts do PowerShell diretamente?
Aqui está como sabemos que os códigos de saída não são confiáveis:
fonte