
I. Présentation
Au grès de mes articles sur MDT nous avons vu que celui-ci gérait les codes retours lors de l’installation d’application. En fait, le MDT considère qu’il n’y a pas d’erreur lorsque le code retourné est 0 (pas d’erreur) ou 3010 (nécessite un redémarrage).
Vous pouvez donc ajouter des codes que vous considérez comme non bloquant mais également gérer les codes renvoyés par votre script.
II. Gérer les codes retour au sein de vos scripts
En bath, il n’est pas conseillé (voir inefficace) de modifier directement la variable système %ERRORLEVEL% et il est donc préférable d’utiliser la commande suivante pour quitter votre script
Exit /B [exitCode]
Note : Le commutateur “/B” permet de quitter entièrement le contexte du script ou de l’interpréteur de commande (%COMSPEC%).
En vbscript, il suffit d’utiliser la méthode suivante
WScript.Quit (exitCode)
Entrez un numéro “exitcode” quelconque ou le numéro effectif de l’erreur via “Err.Number“.
Et en Powershell, vous pouvez vous reporter à mon article sur la gestion des erreurs et entre autres, recourir à la variable “$LastExitCode” ou bien utiliser la commande “Exit” suivi d’un code retour comme en batch. Toutefois, si vous souhaitez avoir le même comportement qu’avec le commutateur “/B” je vous conseille la petite fonction suivante :
function ExitWithCode { param ( $exitcode ) $host.SetShouldExit($exitcode) exit }
De la même manière vous pouvez stipuler un numéro “exitcode” quelconque ou le numéro effectif de l’erreur via “$global:LastExitCode”