MicrosoftPolicyPlatformSetup.msi failed. Error text. ExitCode 1603 when migrating clients to #ConfigMgr Current Branch


Whilst working with a customer to migrate them from System Center 2012 Configuration Manager (that’s right you heard me!), we noticed that the migrated clients were not successfully connecting to the Cloud Management Gateway on the destination Current Branch site.

On closer inspection, we noted that the ConfigMgr client was not automatically upgrading on the new site. The ccmsetup.log was nicely reporting a generic error.

File C:\Windows\ccmsetup\MicrosoftPolicyPlatformSetup.msi failed. Error text. ExitCode 1603Action: Error Messages

InstallFromManifest failed 0x80070643

CcmSetup failed with error code 0x80070643

A pretty generic error code which was reflected in the MicrosoftPolicyPlatformSetup.log file in the C:\Windows\ccmsetup\Logs folder.

We noted that this error was consistent on all devices coming into the new site.

The Solution

The fix was to take the MicrosoftPolicyPlatformSetup.msi installer from an older release of ConfigMgr prior to migrating the clients from the source site.

Now this could be tricky for you to obtain since the latest downloadable release from Microsoft is the baseline release of 2303 and the MicrosoftPolicyPlatformSetup.msi on this release will cause this failure.

Luckily, I had access to a Visual Studio subscription where I could obtain System Center Configuration Manager 1902.

I didn’t have access to VLSC and it’s possible that you can obtain these releases there also. If someone can check this and can confirm, I can then add to the blog.

The msi install is located in either the SMSSETUP\CLIENT\X64 or SMSSETUP\CLIENT\i386 (anyone still using this?) folders.

We now need to create a ConfigMgr package in the source site to deploy the msi to our devices, before they are migrated.

In the ConfigMgr console, navigate to Software Library\Overview\Packages and right click and select Create Package.

Name your package accordingly and enter the path to the msi file. Click Next.

Select Standard program and click Next.

Enter the following information and then complete the wizard:

  • Name: As appropriate
  • Command Line: msiexec /i microsoftpolicyplatformsetup.msi /q
  • Run: Hidden
  • Program can run: Whether or not a user is logged on

When deploying the package, set as Required.

and set the Assignment schedule to As soon as possible.

Staging the migration

This deployment needs to be implemented prior to migrating clients to the destination Current Branch site. We can stagger the deployment using a couple of collections.

The first collection contains the deployment of the msi with the deployment settings as highlighted in the previous section. This will install the Microsoft Policy Platform Setup msi with our devices prepped ready for migration.

The second collection is limited to first collection, to ensure that devices in this collection have had the new msi installed. We also add a query collection which will check to ensure that the clients have installed the msi correctly. The code for the query collection is:

select SMS_R_SYSTEM.ResourceID, SMS_R_SYSTEM.ResourceType, SMS_R_SYSTEM.Name, SMS_R_SYSTEM.SMSUniqueIdentifier, SMS_R_SYSTEM.ResourceDomainORWorkgroup, SMS_R_SYSTEM.Client from SMS_R_System inner join SMS_ClientAdvertisementStatus on SMS_R_System.ResourceId = SMS_ClientAdvertisementStatus.ResourceID where SMS_ClientAdvertisementStatus.AdvertisementID = 'AdvertisementID' and SMS_ClientAdvertisementStatus.LastStatusMessageID = 10008

Change the code SMS_ClientAdvertisementStatus.AdvertisementID = ‘AdvertisementID’ with the ID of the deployment of your Microsoft Policy Platform Setup package. You can obtain this information from \Software Library\Overview\Application Management\Packages. Highlight your package, Click the Deployments tab, then right click the column headings and turn on Deployment ID.

The deployment to the second collection is a site change script which is documented here https://learn.microsoft.com/en-us/archive/technet-wiki/31379.sccm-change-site-code-of-client and I have used this many times to migrate clients over to the new site without having to reinstall the ConfigMgr client. Note that since this blog was moved from Technet, that the formatting of the vbs code isn’t great so here it is, formatted correctly. Also make sure to replace your site code in place of P01:

On Error Resume Next
set oSMSClient = CreateObject ("Microsoft.SMS.Client")
'if Err.Number <>0 then
'wscript.echo "Could not create SMS Client Object - quitting"
'end if
'Assign client to Servername
oSMSClient.SetAssignedSite "P01",0
set oSMSClient=nothing

The final step is to make sure that you have client upgrade enabled in the destination site. This may be a redundant step since, when you migrate clients from a source hierarchy, the client software on the client computer upgrades to match the product version of the destination hierarchy.

Client upgrade is enabled by default on a site with a 7 day cadence. Go to \Administration\Overview\Site Configuration\Sites and click Hierarchy Settings. In the Client Upgrade tab, check to see it is enabled. We have changed the setting to 1 day to get clients upgraded as soon as possible when they hit the new site (as noted this may not be a required step but we are proceeding with this step regardless). The default value will be reverted post migration.

I hope this helps you out of the situation. It’s possible that this is required also when moving from earlier unsupported releases of ConfigMgr Current Branch. Let me know if you come across this problem if so. It may be something I come across again the future and Google leads me back to this blog post. Enjoy!

Leave a Reply