Hello everyone let’s learn how to Remove SCCM Client from Provisioning Mode. In this post, I will show you the steps to remove clients from the provisioning mode.
The client will be in Provisioning mode during operating system deployment (OSD). This is applicable to in-place upgrade OS Task Sequence(TS). When the client is provisioning state, it doesn’t process policy from the server-side.
Provisioning mode behavior helps the task sequence to run without additional deployments. The client should automatically come out of provisioning mode once the task sequence is completed.
Updated on 19th April 2021 – I have received feedback from the community that it’s better to use the commands instead of registry values. The PowerShell option was already given in the blog post. Really appreciate the comments and involvement with the HTMD community.
I have seen this issue occurs when you are performing an in-place upgrade to Windows 10. If the upgrade activity is failed due to some reason, then the ConfigMgr client will fall under-provisioning mode (not always).
If the ConfigMgr client falls under-provisioning mode, then client-side communications can not be reached to the SCCM servers. The client can receive the new policies as per my experience.
In the SCCM console, you can see the client will be in an inactive state. There are a few steps discussed below that can be followed to remove the ConfigMgr client manually out of provisioning mode.
- Changing Registry Value
- PowerShell Command
I realized that there was some problem with some of the ConfigMgr (a.k.a SCCM) when I was going through the console.
- Verify the client activity status in the ConfigMgr console and you need to perform further troubleshooting when you see the client is inactive.
- Communication 37 means there are 37 policies sent from the server side but there is no response from the client side.
- Verify client-side log CcmNotificationAgent.log if the ConfigMgr client is in a provisioning state.
CRL Checking is Enabled. Faild to read 'security Token' from registry. CCMGetCertificateContextWrapperEx - function called while in provisioning mode. CCMGetCurrentSigningCertificateContext failed when get client certificate context. 8000ffff
Fix – Remove SCCM Client from Provisioning Mode
The following are the two methods that you can try to fix the issue provisioning mode issue.
NOTE! – If the task sequence unexpectedly fails, the client can be left in provisioning mode. In this scenario, you need to troubleshoot further and understand why the client is in provisioning mode.
Changing Registry Value
This is a method to change the registry value to remove the ConfigMgr client from provisioning mode.
- If the value of ProvisioningMode is True in the following registry key: HKLM\Software\Microsoft\CCM\CcmExec, then the client is on provisioning mode.
- Remove the client out of provisioning mode and modify the value of ProvisioningMode to False in the following registry key: HKLM\Software\Microsoft\CCM\CcmExec. Also, remove the value inside SystemTaskExcludes.
NOTE! – We recommend you create a backup before editing the registry.
The following PowerShell command helps us to Remove SCCM Client from Provisioning Mode. Use below PowerShell command line which invokes the WMI method and will modify the value.
Invoke-WmiMethod -Namespace root\CCM -Class SMS_Client -Name SetClientProvisioningMode -ArgumentList $false
Debabrata Pati has more than 7+ years of experience in IT. Skilled in MEMCM, Azure, and Powershell. More than five (5) years of experience in MEMCM (SCCM) administration, OSD, and Troubleshooting for the environment with more than 100K client devices.
3 thoughts on “How to Remove SCCM Client from Provisioning Mode | ConfigMgr”
Microsoft Premier support told us DO NOT do this by editing the registry. Always activate the invoke WMI method to remove it from provisioning. The Registry is just a surface view of what is going on and there are components of the client that will not reset correctly if you just alter the registry.
100% – Do not change the registry values! Only use the command lines.
Use the following command instead
New-ItemProperty -path “HKLM:\SOFTWARE\Microsoft\CCM\CcmExec” -Name “ProvisioningMode” -Type string -force -value “false”