On Windows XP, I am advertising an MSI that has ARPSYSTEMCOMPONENT set to 1 but it appears in ARP anyway. Is this by design? Is there a workaround
Indeed, once I fault in the product, the ARP entry goes away. There’s not much to see in the MSI. Just set the property and run an advertisement. My guess is that the advertise script does not allow for this case, so there is probably no way that I can work around it.
Your analysis is correct. Advertisement doesn't write to the Uninstall key so the app shows up because of ARP's enumeration through MsiEnumProducts and the fact that there's no uninstall key reference with SystemComponent to ignore that particular product.
Content credit also belongs to