Hardware Inventory not being recieved by the Management Point

Me and a colleague have been working on an issue today where the Hinv from a client was being generated and sent but never seemed to be received by the MP.

When we checked the Last Hardware Scan value for the machine in Resource Explorer > Hardware > Workstation Status, we could see that SCCM stated the last scan was from over a month ago but looking at the InventoryAgent.log on the client, it clearly showed it successfully sent the report yesterday.

There were no errors (or even mentions) for this machine in either of the inventory components in Component Status in the console or in the MP_Hinv.log on the MP. Something was blocking the report between it being sent by the client and it being received on the MP.

Tho obvious answer for this was IIS, so we turned on IIS logging for the MP server and sent the Hinv again. Within a few seconds we saw:

170.60.210.69 BITS_POST /CCM_Incoming/{25F04BBF-0626-4989-921D-0B3EDA3B2A1C} (bits_error:{5FB9E647-D1DC-4211-8A68-2310B81E4E0C},403,0×80070005) 80 – 10.133.44.170 Microsoft+BITS/7.5 403 0 0 0

Obviously the bits_error part of this message immediately made us think there might be a problem with BITS on the client. As an initial troubleshooting step, we decided to try and clear the BITS queue of current jobs, using the below method:

  1. Stop the BITS service on the client (use services.msc or “net stop BITS”)
  2. For Windows 7 or Windows 8 go to C:\ProgramData\Microsoft\Network\Downloader. For Windows Vista and below go to C:\Documents and Settings\All Users\Application Data\Microsoft\Network\Downloader.
  3. Delete qmgr0.dat and qmgr1.dat
  4. Start the BITS service on the client (use services.msc or “net start BITS”)

Once the BITS queue had been cleared we ran another Hinv and the information was sent by the client and received by the MP successfully. The client also no longer created any errors in the IIS logs.

Problem solved.

Force an SCCM Client to use a particular AD Site

Did you know it was possible to make SCCM think that a computer is in a particular AD site, even though based on its IP address, it is in a completely different one?

You may want to use this for many scenarios such as a test environment, where you want to force a client to download from a particular DP.

It is very easy to do by simply going to the following registry key:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters

Create a new String Value called SiteName with a value of the AD Site you want to use.

ADSiteName
Once it has been added, open up the SCCM Client on the machine and you will see that the AD Site Name has now been changed:

ADSiteNameOnClient
All software downloads initiated from this client will now take place from the DP that has the boundary for this AD site.