J'utilise un déploiement d'application SCCM 2012 pour installer le logiciel. Le type d'installation spécifique est un programme d'installation scripté car SCCM échouait toujours pour les erreurs de validation exe. Le script est PowerShell et installe avec succès le logiciel même lorsqu'il est exécuté par SCCM.
Le problème est que SCCM ne voit que le retour de 0 à la fin du script. Je l' ai essayé write-host
, return
, write-output
, et juste une ligne avec le code pour un redémarrage logiciel. Aucun d'eux ne semble être lu par SCCM car le journal d'exécution de l'application capture un retour de 0.
Comment générer des codes retour à partir de PowerShell pour que SCCM puisse les interpréter?
powershell
scripting
sccm
sccm-2012-r2
Colyn1337
la source
la source
exit 1
à la fin du script PowerShell?exit
est uncmd
intégré. Dans d'autres systèmes de déploiement, j'ai vu des fichiers .ps1 s'exécuter avecstart
oucmd /c powershell.exe somefile.ps1
. Désolé pour spitballing sans accès à un test SCCM.Réponses:
Il existe un problème connu avec les codes de sortie powershell (voir la fin de cette réponse) qui peut se manifester lors de l'utilisation de scripts d'installation powershell avec SCCM. Pour contourner le problème, je prends deux mesures:
powershell.exe
explicitement.[System.Environment]::Exit()
.Avec ces deux mesures, je n'ai pas eu de problème lié aux codes de sortie. C'est une grande victoire car le dépannage des codes de sortie des scripts d'installation est un processus lent car vous devez attendre que le client SCCM invoque votre script pour chaque itération de dépannage.
Voici à quoi ressemblent le fichier de commandes et le script PowerShell:
Install-Application.bat
Install-Application.ps1
Pourquoi les codes de sortie ne sont-ils pas fiables lorsque SCCM appelle directement des scripts PowerShell?
Voici comment nous savons que les codes de sortie ne sont pas fiables:
la source