Consider the following scenario in Microsoft System Center 2012 Configuration Manager:
You create a Script Installer-based or a Windows Installer-based Deployment Type for an application.
You remove the zero value from the Return Codes tab under the properties of the Deployment Type.
In this scenario, when the application, the script, or Windows Installer returns zero to indicate a successful execution, a failure is reported in the CCM_AppInstallationStatus.ExecutionStatus field.
Additionally, a failure is reported in the AppEnforce.log file and may resemble the following:
Process nnnn terminated with exitcode: 0 Looking for exit code 0 in exit codes table... Unmatched exit code (0) is considered an execution failure.
This behavior is by design. An exit code of zero typically indicates a successful installation for most applications. If the exit code of the application is not in the Return Codes list, the code is considered to indicate failure. Zero should be removed from the table only if a specific application returns a nonzero exit code or codes on success. In that case, the expected nonzero exit codes should also be added to the table together with the appropriate CodeType meaning.