SCCM Remote Viewer Set to Delayed Start

Since this is my first post I thought I would start out with something light. Anyone who uses the SCCM remote viewer can tell you how much of a pain it is waiting for the remote service to start back up after rebooting a client device so you can remote back in. I got tired of hearing my co-worker (Hey Stephen!) complain about it and decided to fix it. The SCCM remote control viewer is installed along with the SCCM client and its service is set to Automatic (Delayed Start) as seen below.

We want this service to start immediately so I decided to use a baseline to change the start up type to Automatic. Now of course you can use a GPO to set the service to automatic, but since this is a Config Manager issue, Config Manager should be the one that fixes it.

I created a configuration item using a Powershell script to find out if the CMRC service was set to Automatic (Delayed). Now I would usually use the Get-Service command to query this value but it doesn’t have a startup type parameter so I’ve resulted to querying the registry. Check out the following example and you will see that the Start value is 2 which translates to Automatic.

DelayedAutoStart is 6 lines below and it alone determines the “Too Delay or Not Too Delay” property that is causing poor Stephen an elevated heart rate. I am using the following script as the discovery portion of my Baseline. It will return Compliant if DelayedAutoStart is set to 0 and Non-Compliant if its set to anything else.

$DelayedAutoStart = (Get-ItemProperty -Path “HKLM:\SYSTEM\CurrentControlSet\Services\CmRcService” | Select-Object -Property DelayedAutoStart).DelayedAutoStart

If ($DelayedAutoStart -eq 1)
{ Write-Host “Non-Compliant”}
else
{Write-Host “Compliant”}

Now for the remediation script we could just simply modify the DelayedAutoStart registry value to 0 and call it a day but the services console window will still show the CRMC service is set to ‘Automatic (Delayed)’ (Regardless, the registry setting will override the GUI and the service will start immediately). A cleaner solution is to use the SC command as this will update the GUI and yes, you can call it from a Powershell script. Just make sure to prepend CMD.exe /C to your script so that Powershell knows how to execute it. Add this to the configuration item as the remediation script.

CMD.exe /C “sc config CmRcService start= auto”

Name it whatever you want but the Discovery script settings of the Configuration Item should look similar to this,

 

the Remediation settings should look like,

 

and the Compliance Rules should look like this.

 

Create a baseline with your newly created config item and deploy it to a collection with a small number of test machines. Verify the CMRC service is being set correctly once the baseline runs and that the result of the evaluation is compliant.

 

As with any random advice on the internet – configure this at your own risk and TEST this fully before implementing in production. Check out the UserVoice feedback forum and toss a vote out to get this updated in the next revision. https://configurationmanager.uservoice.com/forums/300492-ideas/suggestions/15756271-remote-tools-client-setting-to-change-client-ser. Thanks for reading and I hope it helps!

Leave a Reply