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.
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.
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).
net stop CcmExec
Reg Delete HKLM\software\Microsoft\Systemcertificates\SMS\Certificates /f
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
GROUP BY Hardware_ID0, Name0
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!