Hi all,
I'm new here, so apologies if this has already been covered.
I'm trying to deploy the Service Tool Generation Plus (STGP) application via SCCM using Software Center to make it available for users. The installation process involves two components: first, it installs a driver called NCPAP, followed by the main STGP application. The installer is provided as a .exe file and requires user interaction during setup.
I attempted to convert the .exe to an .msi, but that failed. As a workaround, I created a task sequence to install both components sequentially — NCPAP first, then STGP. While the NCPAP driver installs successfully, the STGP installation fails when deployed via Software Center on Windows 10/11 devices.
The error code I’m receiving is: 0x87D01106.
Has anyone encountered a similar issue or have suggestions on how to properly package and deploy this type of installer via SCCM?
Thanks in advance!

</DiscoverySourceInfo>]LOG]!><time="10:24:48.707-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="localapphandler.cpp:258">
<![LOG[+++ Application not discovered. [AppDT Id: ScopeId_2C8BCD4B-7756-4D6E-A14F-35ADD83DF8ED/DeploymentType_d24a1b5c-af6a-4e57-9baf-f6facb9c941a, Revision: 9]]LOG]!><time="10:24:48.724-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="localapphandler.cpp:291">
<![LOG[ App enforcement environment:
Context: Machine
Command line: msiexec /i "Service Tool Plus Generation.msi"
Allow user interaction: No
UI mode: 1
User token: null
Session Id: 4294967295
Content path: C:\WINDOWS\ccmcache\33
Working directory: ]LOG]!><time="10:24:48.728-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="appcontext.cpp:85">
<![LOG[ Prepared working directory: C:\WINDOWS\ccmcache\33]LOG]!><time="10:24:48.736-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="appcontext.cpp:189">
<![LOG[Parsed CmdLine: msiexec /i "Service Tool Plus Generation.msi"]LOG]!><time="10:24:48.737-60" date="07-15-2025" component="AppEnforce" context="" type="0" thread="26200" file="cmdline.cpp:41">
<![LOG[Parsed CmdLine: msiexec /i "Service Tool Plus Generation.msi"]LOG]!><time="10:24:48.737-60" date="07-15-2025" component="AppEnforce" context="" type="0" thread="26200" file="cmdline.cpp:41">
<![LOG[Found executable file msiexec with complete path C:\WINDOWS\system32\msiexec.exe]LOG]!><time="10:24:48.746-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="executility.cpp:188">
<![LOG[Adding /qn to the commandline for msi execution since it's a system dt that doesn't require user interaction.]LOG]!><time="10:24:48.754-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="appcontext.cpp:334">
<![LOG[ Prepared command line: "C:\WINDOWS\system32\msiexec.exe" /i "Service Tool Plus Generation.msi" /qn]LOG]!><time="10:24:48.757-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="appcontext.cpp:338">
<![LOG[Parsed CmdLine: "C:\WINDOWS\system32\msiexec.exe" /i "Service Tool Plus Generation.msi" /qn]LOG]!><time="10:24:48.760-60" date="07-15-2025" component="AppEnforce" context="" type="0" thread="26200" file="cmdline.cpp:41">
<![LOG[Parsed CmdLine: "C:\WINDOWS\system32\msiexec.exe" /i "Service Tool Plus Generation.msi" /qn]LOG]!><time="10:24:48.761-60" date="07-15-2025" component="AppEnforce" context="" type="0" thread="26200" file="cmdline.cpp:41">
<![LOG[Valid MSI Package path = C:\WINDOWS\ccmcache\33\Service Tool Plus Generation.msi]LOG]!><time="10:24:48.778-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="appcontext.cpp:765">
<![LOG[Parsed CmdLine: "C:\WINDOWS\system32\msiexec.exe" /i "Service Tool Plus Generation.msi" /qn]LOG]!><time="10:24:48.779-60" date="07-15-2025" component="AppEnforce" context="" type="0" thread="26200" file="cmdline.cpp:41">
<![LOG[Found no Transforms]LOG]!><time="10:24:48.781-60" date="07-15-2025" component="AppEnforce" context="" type="0" thread="26200" file="appcontext.cpp:1158">
<![LOG[ Advertising MSI package [C:\WINDOWS\ccmcache\33\Service Tool Plus Generation.msi] to the system.]LOG]!><time="10:24:48.784-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="appcommon.cpp:123">
<![LOG[ MSIAdvertisePackage created temp file: C:\WINDOWS\CCM\SystemTemp\tmpC1C4.tmp]LOG]!><time="10:24:49.135-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="appcommon.cpp:151">
<![LOG[ Executing Command line: "C:\WINDOWS\system32\msiexec.exe" /i "Service Tool Plus Generation.msi" /qn with system context]LOG]!><time="10:24:49.256-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="appexcnlib.cpp:203">
<![LOG[Parsed CmdLine: "C:\WINDOWS\system32\msiexec.exe" /i "Service Tool Plus Generation.msi" /qn]LOG]!><time="10:24:49.257-60" date="07-15-2025" component="AppEnforce" context="" type="0" thread="26200" file="cmdline.cpp:41">
<![LOG[Commandline length:33 evaluate:1]LOG]!><time="10:24:49.258-60" date="07-15-2025" component="AppEnforce" context="" type="0" thread="26200" file="appexcnlib.cpp:212">
<![LOG[ Working directory C:\WINDOWS\ccmcache\33]LOG]!><time="10:24:49.258-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="appexcnlib.cpp:217">
<![LOG[CcmCreateProcess: Running from CcmExec or CcmExec not treated as managed installer; calling CreateProcess directly.]LOG]!><time="10:24:49.260-60" date="07-15-2025" component="AppEnforce" context="" type="0" thread="26200" file="util.cpp:4940">
<![LOG[ Post install behavior is BasedOnExitCode]LOG]!><time="10:24:49.477-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="appcommon.cpp:1054">
<![LOG[Raising ETW event 20001]LOG]!><time="10:24:49.478-60" date="07-15-2025" component="AppEnforce" context="" type="0" thread="26200" file="Event.cpp:1868">
<![LOG[Raised ETW event 20001]LOG]!><time="10:24:49.478-60" date="07-15-2025" component="AppEnforce" context="" type="0" thread="26200" file="Event.cpp:1894">
<![LOG[ Process creation time: 2025-07-15 09:24:49:262]LOG]!><time="10:24:49.482-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="appcommon.cpp:1161">
<![LOG[ Current time: 2025-07-15 09:24:49:483]LOG]!><time="10:24:49.483-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="appcommon.cpp:1165">
<![LOG[ Actual elapsed time (in seconds): 0]LOG]!><time="10:24:49.484-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="appcommon.cpp:1173">
<![LOG[ Reconnecting to - Process Id: 24200, MaxRunTime: 7200000]LOG]!><time="10:24:49.484-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="appcommon.cpp:1194">
<![LOG[ Waiting for process 24200 to finish. Timeout = 120 minutes.]LOG]!><time="10:24:49.486-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="appexcnlib.cpp:2014">
<![LOG[ Process 24200 terminated with exitcode: 1603]LOG]!><time="10:25:01.564-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="appexcnlib.cpp:2023">
<![LOG[ Looking for exit code 1603 in exit codes table...]LOG]!><time="10:25:01.565-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="appexcnlib.cpp:510">
<![LOG[ Unmatched exit code (1603) is considered an execution failure.]LOG]!><time="10:25:01.566-60" date="07-15-2025" component="AppEnforce" context="" type="2" thread="26200" file="appexcnlib.cpp:596">
<![LOG[Status is switching to Failure]LOG]!><time="10:25:01.568-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="appenforcestatus.cpp:312">
<![LOG[Reading status 'Failure' from current status object.]LOG]!><time="10:25:01.570-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="appenforcestatus.cpp:336">
<![LOG[Reading status 'Failure' from current status object.]LOG]!><time="10:25:01.574-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="appenforcestatus.cpp:336">
<![LOG[++++++ App enforcement completed (12 seconds) for App DT "Service Tool Plus Generation - Windows Installer (*.msi file)" [ScopeId_2C8BCD4B-7756-4D6E-A14F-35ADD83DF8ED/DeploymentType_d24a1b5c-af6a-4e57-9baf-f6facb9c941a], Revision: 9, User SID: ] ++++++]LOG]!><time="10:25:01.575-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="appprovider.cpp:2843">
I'm new here, so apologies if this has already been covered.
I'm trying to deploy the Service Tool Generation Plus (STGP) application via SCCM using Software Center to make it available for users. The installation process involves two components: first, it installs a driver called NCPAP, followed by the main STGP application. The installer is provided as a .exe file and requires user interaction during setup.
I attempted to convert the .exe to an .msi, but that failed. As a workaround, I created a task sequence to install both components sequentially — NCPAP first, then STGP. While the NCPAP driver installs successfully, the STGP installation fails when deployed via Software Center on Windows 10/11 devices.
The error code I’m receiving is: 0x87D01106.
Has anyone encountered a similar issue or have suggestions on how to properly package and deploy this type of installer via SCCM?
Thanks in advance!

</DiscoverySourceInfo>]LOG]!><time="10:24:48.707-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="localapphandler.cpp:258">
<![LOG[+++ Application not discovered. [AppDT Id: ScopeId_2C8BCD4B-7756-4D6E-A14F-35ADD83DF8ED/DeploymentType_d24a1b5c-af6a-4e57-9baf-f6facb9c941a, Revision: 9]]LOG]!><time="10:24:48.724-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="localapphandler.cpp:291">
<![LOG[ App enforcement environment:
Context: Machine
Command line: msiexec /i "Service Tool Plus Generation.msi"
Allow user interaction: No
UI mode: 1
User token: null
Session Id: 4294967295
Content path: C:\WINDOWS\ccmcache\33
Working directory: ]LOG]!><time="10:24:48.728-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="appcontext.cpp:85">
<![LOG[ Prepared working directory: C:\WINDOWS\ccmcache\33]LOG]!><time="10:24:48.736-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="appcontext.cpp:189">
<![LOG[Parsed CmdLine: msiexec /i "Service Tool Plus Generation.msi"]LOG]!><time="10:24:48.737-60" date="07-15-2025" component="AppEnforce" context="" type="0" thread="26200" file="cmdline.cpp:41">
<![LOG[Parsed CmdLine: msiexec /i "Service Tool Plus Generation.msi"]LOG]!><time="10:24:48.737-60" date="07-15-2025" component="AppEnforce" context="" type="0" thread="26200" file="cmdline.cpp:41">
<![LOG[Found executable file msiexec with complete path C:\WINDOWS\system32\msiexec.exe]LOG]!><time="10:24:48.746-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="executility.cpp:188">
<![LOG[Adding /qn to the commandline for msi execution since it's a system dt that doesn't require user interaction.]LOG]!><time="10:24:48.754-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="appcontext.cpp:334">
<![LOG[ Prepared command line: "C:\WINDOWS\system32\msiexec.exe" /i "Service Tool Plus Generation.msi" /qn]LOG]!><time="10:24:48.757-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="appcontext.cpp:338">
<![LOG[Parsed CmdLine: "C:\WINDOWS\system32\msiexec.exe" /i "Service Tool Plus Generation.msi" /qn]LOG]!><time="10:24:48.760-60" date="07-15-2025" component="AppEnforce" context="" type="0" thread="26200" file="cmdline.cpp:41">
<![LOG[Parsed CmdLine: "C:\WINDOWS\system32\msiexec.exe" /i "Service Tool Plus Generation.msi" /qn]LOG]!><time="10:24:48.761-60" date="07-15-2025" component="AppEnforce" context="" type="0" thread="26200" file="cmdline.cpp:41">
<![LOG[Valid MSI Package path = C:\WINDOWS\ccmcache\33\Service Tool Plus Generation.msi]LOG]!><time="10:24:48.778-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="appcontext.cpp:765">
<![LOG[Parsed CmdLine: "C:\WINDOWS\system32\msiexec.exe" /i "Service Tool Plus Generation.msi" /qn]LOG]!><time="10:24:48.779-60" date="07-15-2025" component="AppEnforce" context="" type="0" thread="26200" file="cmdline.cpp:41">
<![LOG[Found no Transforms]LOG]!><time="10:24:48.781-60" date="07-15-2025" component="AppEnforce" context="" type="0" thread="26200" file="appcontext.cpp:1158">
<![LOG[ Advertising MSI package [C:\WINDOWS\ccmcache\33\Service Tool Plus Generation.msi] to the system.]LOG]!><time="10:24:48.784-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="appcommon.cpp:123">
<![LOG[ MSIAdvertisePackage created temp file: C:\WINDOWS\CCM\SystemTemp\tmpC1C4.tmp]LOG]!><time="10:24:49.135-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="appcommon.cpp:151">
<![LOG[ Executing Command line: "C:\WINDOWS\system32\msiexec.exe" /i "Service Tool Plus Generation.msi" /qn with system context]LOG]!><time="10:24:49.256-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="appexcnlib.cpp:203">
<![LOG[Parsed CmdLine: "C:\WINDOWS\system32\msiexec.exe" /i "Service Tool Plus Generation.msi" /qn]LOG]!><time="10:24:49.257-60" date="07-15-2025" component="AppEnforce" context="" type="0" thread="26200" file="cmdline.cpp:41">
<![LOG[Commandline length:33 evaluate:1]LOG]!><time="10:24:49.258-60" date="07-15-2025" component="AppEnforce" context="" type="0" thread="26200" file="appexcnlib.cpp:212">
<![LOG[ Working directory C:\WINDOWS\ccmcache\33]LOG]!><time="10:24:49.258-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="appexcnlib.cpp:217">
<![LOG[CcmCreateProcess: Running from CcmExec or CcmExec not treated as managed installer; calling CreateProcess directly.]LOG]!><time="10:24:49.260-60" date="07-15-2025" component="AppEnforce" context="" type="0" thread="26200" file="util.cpp:4940">
<![LOG[ Post install behavior is BasedOnExitCode]LOG]!><time="10:24:49.477-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="appcommon.cpp:1054">
<![LOG[Raising ETW event 20001]LOG]!><time="10:24:49.478-60" date="07-15-2025" component="AppEnforce" context="" type="0" thread="26200" file="Event.cpp:1868">
<![LOG[Raised ETW event 20001]LOG]!><time="10:24:49.478-60" date="07-15-2025" component="AppEnforce" context="" type="0" thread="26200" file="Event.cpp:1894">
<![LOG[ Process creation time: 2025-07-15 09:24:49:262]LOG]!><time="10:24:49.482-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="appcommon.cpp:1161">
<![LOG[ Current time: 2025-07-15 09:24:49:483]LOG]!><time="10:24:49.483-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="appcommon.cpp:1165">
<![LOG[ Actual elapsed time (in seconds): 0]LOG]!><time="10:24:49.484-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="appcommon.cpp:1173">
<![LOG[ Reconnecting to - Process Id: 24200, MaxRunTime: 7200000]LOG]!><time="10:24:49.484-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="appcommon.cpp:1194">
<![LOG[ Waiting for process 24200 to finish. Timeout = 120 minutes.]LOG]!><time="10:24:49.486-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="appexcnlib.cpp:2014">
<![LOG[ Process 24200 terminated with exitcode: 1603]LOG]!><time="10:25:01.564-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="appexcnlib.cpp:2023">
<![LOG[ Looking for exit code 1603 in exit codes table...]LOG]!><time="10:25:01.565-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="appexcnlib.cpp:510">
<![LOG[ Unmatched exit code (1603) is considered an execution failure.]LOG]!><time="10:25:01.566-60" date="07-15-2025" component="AppEnforce" context="" type="2" thread="26200" file="appexcnlib.cpp:596">
<![LOG[Status is switching to Failure]LOG]!><time="10:25:01.568-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="appenforcestatus.cpp:312">
<![LOG[Reading status 'Failure' from current status object.]LOG]!><time="10:25:01.570-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="appenforcestatus.cpp:336">
<![LOG[Reading status 'Failure' from current status object.]LOG]!><time="10:25:01.574-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="appenforcestatus.cpp:336">
<![LOG[++++++ App enforcement completed (12 seconds) for App DT "Service Tool Plus Generation - Windows Installer (*.msi file)" [ScopeId_2C8BCD4B-7756-4D6E-A14F-35ADD83DF8ED/DeploymentType_d24a1b5c-af6a-4e57-9baf-f6facb9c941a], Revision: 9, User SID: ] ++++++]LOG]!><time="10:25:01.575-60" date="07-15-2025" component="AppEnforce" context="" type="1" thread="26200" file="appprovider.cpp:2843">