Introduction/Problem:
Colleague mine has asked me , why is he getting applications /updates on his computer that he hasn't requested for. When i heard of this ,i verified in SCCM , based on the computer name provided and found ,the PC has no SCCM agent .
If the PC has no SCCM agent ,there is no way to receive the deployments. From the console,atleast i can see that, the client=No .So i asked him to check if these deployments are coming through SCCM/Configmgr or other methods .He confirms that, they are coming from SCCM and his PC has SCCM agent and also apps in Software center.
Screenshot for PC has no SCCM agent installed :
In SCCM database ,if I check select * v_r_system where name='computername' .i see the client=0 .It means that the computer had the client agent installed but the Client flag has been cleared. The only action built into ConfigMgr to do this is the Clear Install Flag from site maintenance task. This task clears the flag, i.e., sets the value to zero, if the client has not reported a heartbeat in the configured number of days. I checked the site maintenance ,clear install flag is enabled but that is not the issue here.
I have asked user to check if the SCCM client installed and launch software center so it was confirmed that ,PC has SCCM agent and is receiving the deployments ,i have decided to take this up further and help to troubleshoot.
Solution:
When PC has SCCM agent and is healthy , where should we look to fix the issue ? Can we simply uninstall the client and install it back ? does this work ?
I started troubleshooting on the client side by looking at client logs.
1. Review ClientIDManagerStartup.log --> Records the creation and maintenance of client GUID'S and also the registration status of the client computer.This Can help to troubleshoot scenarios where the client changes its GUID after a hardware change or after Windows activation.
So from this log, i can get the GUID of the computer and check in SCCM,which computer this GUID is assigned to.
you can also get the GUID from smscfg.ini located in C:\windows folder.
Copy the GUID ID and go back to your SQL management studio to find out which computer has this GUID ID.
select name0,SMS_Unique_Identifier0
From v_R_System
where SMS_Unique_Identifier0='GUID:F43BD203-2466-4284-BF28-3A62860C958A'
Run the above Query ,replace GUID ID that you get from log or smscfg.ini file.
This GUID ID assigned to different computer as you can see from below query:
All the deployments that are targeted to this PC are actually hitting problem computer.This is where duplicate or GUID mismatch leads to wrong deployments. you always need to have operation Collections to identify the duplicate GUID or GUID assigned to multiple computers to avoid these kind of issues.
How do we fix it without reinstalling client ?
Here is simple batch script to stop SMS Agent host ,delete SMSCFG.INI and certificates and start SMS Agent host service to create new GUID (this is not computer GUID).
@echo Off
net stop CcmExec
sleep 5
Reg Delete HKLM\software\Microsoft\Systemcertificates\SMS\Certificates /f
DEL c:\Windows\SMSCFG.ini
sleep 5
net start CcmExec
Open command prompt as administrator and run the above script or command lines .
After you run this script ,monitor ClientIDManagerStartup.log .
After a while ,you will see that, client is now with SCCM client installed and whatever the false deployments on this PC will get disappear from software center in the next machine policy cycle also collection membership update .
SQL code to find devices with duplicate hardware ID:
--duplicate hardware ID's:
SELECT Name0, Hardware_ID0, Count(Hardware_ID0) AS SystemCount
FROM dbo.v_R_System
GROUP BY Hardware_ID0, Name0
having count(Hardware_ID0)>1
ORDER BY SystemCount DESC
Here is the SQL code to find the list of devices with duplicate computer names:
select sys.name0,sys.ResourceID from v_r_system as sys
full join v_r_system as sys1 on sys1.ResourceId = sys.ResourceId
full join v_r_system as sys2 on sys2.Name0 = sys1.Name0
where sys1.Name0 = sys2.Name0 and sys1.ResourceId != sys2.ResourceId
group by sys.Name0,sys.ResourceID
order by 1
Until next time!
9 Comments
Hi, Issue resolved but it is back to same
Hi,
can you check if these devices are provisioned using a template that has SCCM agent installed with same GUID?
This usually happens when the GUID ID is common. is it happening on physical devices or VM's?
Thanks,
Eswar
Hi Eswar
Thanks for your post that helped me in my issue
But, Is there automated way to run script on multiple devices
Hi,
You may have to use psexec or other tools to deploy the script given in the blog post.
Thanks
Eswar
I couldn't run the SQL query. Maybe a few more step on how to run it would have been great for the noobs. However, the batch file fixed the issue like a charm. Thank you.
Hi Chang,
For SQL, what issue do you get? do you have enough permissions to run the SQL query?
you may have to check with your SQL/SCCM Admin for enough permissions.
Glad that, your fixed the issue with the help of batch script.
Thanks,
Eswar
Thank you, helped me a lot
Pingback: System Center Eylül 2018 Bülten – Sertaç Topal
Actually had this situation come about recently. This was post was very helpful as it pointed me to a root cause and steps to remediate.