I've got an MSI created by WIX that can be run locally as an administrator without error. But when deployed via SCCM as an Application Deployment imported from the MSI shows in Software Center as having failed with code 0x87D00324
. In either case the actual installation succeeds (in that files and registry entries are created as expected and the application loads).
The SCCM error suggests that the product isn't detected after installation. If installed manually using the same command line as SCCM is configured to use (msiexec /i [msi goes here] /qn
), Software Center shows the application as Installed, indicating the detection rules are correct - detection is setup to look for the installed product code. AppEnforce.log
traces suggest that the above's what's happening:
The MSI is configured to install for all users (ALLUSERS=1
as an MSI property, not on the command line) and requires elevation to run. The SCCM job is configured as 'Install for System' and 'Only when no user is logged on', and targets specific machines and not users.
With machine-wide MSI logging enabled, there are some differences in the logging output that I guess may be contributing:
PROPERTY CHANGE: Deleting ALLUSERS property. Its current value is '1'
though it's unclear what's causing this
msiexec
- as 'Adding ALLUSERS...' then 'Deleting ALLUSERS...' a few lines laterProductPublish
step/log entry has an Assignment
value of 0 when installed via SCCM (equivalent to Per User, according to documentation) but 1 when installed manually (equivalent to Per Machine)ADVERTISE
actionmsiexec
at all but is perhaps the remainder of the ADVERTISE
action's logging in a different file for some reasonINSTALL
)Post-install, Get-WmiObject -Namespace root\ccm\CIModels -Class CCM_MSIProduct
has different output for the two install methods:
Both methods show the application as installed when querying via wmic product get
.
Client: Windows 10 Enterprise, SCCM client 5.0.0.8577.1115
Server: SCCM 1710 (5.0.0.8577.1115)
Update 12 Apr 2018, additional info:
pstools
to run the MSI as SYSTEM - if done once, uninstalling the MSI by hand then reinstalling via SCCM works and detects correctly (this is obviously pointless, but an interesting result)Using cached product context: User assigned for product: 6176BC215761514458869E9B9ABB08BC
HKLM\Software\Classes\Installer\Products\[[Product Code]]\AdvertiseFlags
, which is 0x180
in the failing state and 0x184
in the passing stateWhat could cause the difference in behaviour between the SCCM job and a manual installation? What could cause the SCCM job to run in user context even though it appears to be running as SYSTEM and is configured to Install for System?
As you have mentioned, it tries to advertise the MSI rather than install which is strange.May be you have to relook the script or read it in orca and see.
Did you happen to check the product code which is defined in detection appears in registry also.
32 bit: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Product code
or
64 bit: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Product code
User contributions licensed under CC BY-SA 3.0