Hardware Scan state stops updating after upgrading to 2203

Hardware Inventory scan state stops updating after upgrading to 2203

ISSUE

Hardware Inventory Scan state stops updating after upgrading to 2203. It stays empty or keeps the old date without any change.

LOGS

inventoryAgent.log says the report has been successfully sent. But be vigilant. This can be a misleading message. That information only indicates that InventoryAgent iteslf sends the report to CcmMessageing component, which is actually responsible for sending the report to the management point via Bits.

InventoryAgent    29432 (0x72f8)    Inventory: Temp report = C:\Windows\CCM\Inventory\Temp\77aea040-e9a5-4a57-9159-91eae40810b9.xml
InventoryAgent    23620 (0x5c44)    Inventory: Successfully sent report. Destination:mp:MP_HinvEndpoint, ID: {A781FEBD-D4C2-44B7-98B9-6A84F02ED431}, Timeout: 80640 minutes MsgMode: Signed, Not Encrypted

CcmMessaging.log has interesting messages. It starts sending the report but keeps retrying. Why? Because it fails to send the report.

CcmMessaging    23620 (0x5c44)    Sending async message '{A781FEBD-D4C2-44B7-98B9-6A84F02ED431}' to outgoing queue 'mp:mp_hinvendpoint'
CcmMessaging    28148 (0x6df4)    Upload location request: <UploadRequest NetworkType="Intranet"><MessageID>{A781FEBD-D4C2-44B7-98B9-6A84F02ED431}</MessageID></UploadRequest>
CcmMessaging    28148 (0x6df4)    Upload location response: <UploadReply><Host>contonsomp.lab.com</Host><URL>http://contonsomp.lab.com/CCM_Incoming/{A781FEBD-D4C2-44B7-98B9-6A84F02ED431}</URL></UploadReply>
CcmMessaging    28148 (0x6df4)    Uploading 'C:\Windows\CCM\ServiceData\LocalPayload\{A781FEBD-D4C2-44B7-98B9-6A84F02ED431}' to 'http://contonsomp.lab.com/CCM_Incoming/{A781FEBD-D4C2-44B7-98B9-6A84F02ED431}' for message '{A781FEBD-D4C2-44B7-98B9-6A84F02ED431}'
CcmMessaging    28148 (0x6df4)    UpdateURLWithTransportSettings(): OLD URL - http://contonsomp.lab.com/CCM_Incoming/{A781FEBD-D4C2-44B7-98B9-6A84F02ED431}
CcmMessaging    28148 (0x6df4)    UpdateURLWithTransportSettings(): NEW URL - http://contonsomp.lab.com:80/CCM_Incoming/{A781FEBD-D4C2-44B7-98B9-6A84F02ED431}
CcmMessaging    28148 (0x6df4)    OutgoingMessage(Queue='mp_mp_hinvendpoint', ID={A781FEBD-D4C2-44B7-98B9-6A84F02ED431}): Started upload to 'http://contonsomp.lab.com/CCM_Incoming/{A781FEBD-D4C2-44B7-98B9-6A84F02ED431}'.
CcmMessaging    28148 (0x6df4)    OutgoingMessage(Queue='mp_mp_hinvendpoint', ID={A781FEBD-D4C2-44B7-98B9-6A84F02ED431}): In pending state, will retry in 5 seconds.
CcmMessaging    15848 (0x3de8)    OutgoingMessage(Queue='mp_mp_hinvendpoint', ID={A781FEBD-D4C2-44B7-98B9-6A84F02ED431}): In pending state, will retry in 30 seconds.
CcmMessaging    28148 (0x6df4)    OutgoingMessage(Queue='mp_mp_hinvendpoint', ID={A781FEBD-D4C2-44B7-98B9-6A84F02ED431}): In pending state, will retry in 60 seconds.
CcmMessaging    28148 (0x6df4)    OutgoingMessage(Queue='mp_mp_hinvendpoint', ID={A781FEBD-D4C2-44B7-98B9-6A84F02ED431}): In pending state, will retry in 300 seconds.

Bits event log:

BITS stopped transferring the CCM Message Upload {A781FEBD-D4C2-44B7-98B9-6A84F02ED431} transfer job that is associated with the http://nt-sccm-pss-p1.corp.taifungbank.com:80/CCM_Incoming/{A781FEBD-D4C2-44B7-98B9-6A84F02ED431} URL. The status code is 0x80070003.

0x80070003 means –

Error Code:     0x80070003
Error Name:   ERROR_PATH_NOT_FOUND
Error Source:  Windows
Error Message:          The system cannot find the path specified.

I suspected the file

C:\Windows\CCM\ServiceData\LocalPayload\{A781FEBD-D4C2-44B7-98B9-6A84F02ED431}

could be somehow missing but that was not true. That files was right there in the LocalPayload folder. And I could see other old files piling up in that folder. Uninstalling McAfee from the machine did not help at all.

You can get a similar message with bitsadmin /list /allusers /verbose.

GUID: {b99b7eda-b80e-482d-b73b-765419a9fd2f} DISPLAY: 'CCM Message Upload {A781FEBD-D4C2-44B7-98B9-6A84F02ED431}'
TYPE: UPLOAD STATE: ERROR OWNER: NT AUTHORITY\SYSTEM
PRIORITY: NORMAL FILES: 0 / 1 BYTES: 0 / 4343
CREATION TIME: 5/26/2022 5:22:56 PM MODIFICATION TIME: 5/30/2022 5:22:56 PM
COMPLETION TIME: UNKNOWN ACL FLAGS:
NOTIFY INTERFACE: UNREGISTERED NOTIFICATION FLAGS: 3
RETRY DELAY: 600 NO PROGRESS TIMEOUT: 1209600 ERROR COUNT: 1119
PROXY USAGE: NO_PROXY PROXY LIST: NULL PROXY BYPASS LIST: NULL
ERROR FILE:    http://contonsomp.lab.com:80/CCM_Incoming/{A781FEBD-D4C2-44B7-98B9-6A84F02ED431} -> C:\Windows\CCM\ServiceData\LocalPayload\{A781FEBD-D4C2-44B7-98B9-6A84F02ED431}
ERROR CODE:    0x80070003 - The system cannot find the path specified.
ERROR CONTEXT: 0x00000005 - The error occurred while the remote file was being processed.
DESCRIPTION:
JOB FILES:
        0 / 4343 WORKING http://contonsomp.lab.com:80/CCM_Incoming/{A781FEBD-D4C2-44B7-98B9-6A84F02ED431} -> C:\Windows\CCM\ServiceData\LocalPayload\{A781FEBD-D4C2-44B7-98B9-6A84F02ED431}
NOTIFICATION COMMAND LINE: none
owner MIC integrity level: SYSTEM
owner elevated ?           true
This job is read-only to the current CMD window because the job's mandatory
integrity level of SYSTEM is higher than the window's level of HIGH.
Peercaching flags
         Enable download from peers      :false
         Enable serving to peers         :false

CUSTOM HEADERS: NULL

MP_Hinv.log on the management does not contain any information from the target client. So does dataldr.log on the site server.

The IIS log on the management point contonsomp.lab.com has the following:

192.168.108.16 BITS_POST /CCM_Incoming/{A781FEBD-D4C2-44B7-98B9-6A84F02ED431} (bits_error:{8CF09A6A-0865-43C6-B500-BCDFB9C84085},404,0x80070003) 80 - 192.168.13.206 Microsoft+BITS/7.5 - 404 0 0 1496 11

404 and 0x80070003 are eye-catching.

Checking further, it is found that C:\Program Files\Microsoft Configuration Manager\CCM\Incoming folder, which is expected to have a subfolder named BITS-Sessions, is empty. What is weird is that mpcontrol.log shows no errors at all.

Solution

Reinstall managment point role and the issue was gone.

References

How to retain the xml file during Hardware or Software Inventory

When dealing with hardware or software inventory issues, you man want to take a peek into the xml file generated during the inventory process. To achieve this, you need to create in %systemroot%\ccm\inventory\temp an empty file archive_reports.sms.

When dealing with hardware or software inventory issues, you man want to take a peek into the xml file generated during the inventory process. To achieve this, you need to create in %systemroot%\ccm\inventory\temp an empty file:

archive_reports.sms

Generally its path should be C:\WINDOWS\CCM\Inventory\temp.

This XML file can reveal what the last scan discovered regardless whether the scan was a full scan or a delta scan. For example, if find one piece of information missing in the hardware inventory you can get the hardware inventory XML file whose name is similar to 0eeda138-3fce-4d01-a1b3-f9aeec6782bd.xml and take a close examination for clues.

Hardware Inventory report does not include zoom.exe information

Most of us take it for granted that Configuration Manager should collect by default all the programs listed in “Uninstall or change a program” shown in Control Panel while in fact it is not the case in reality.

Most of us take it for granted that Configuration Manager should collect by default all the programs listed in “Uninstall or change a program” shown in Control Panel while in fact it is not the case in reality.

For example, if you install zoom.exe on your client and then run a Hardware Inventory cycle you will find in surprise that Hardware Inventory report does not show zoom.exe information at all, though zoom.exe is present just there in “Uninstall or change a program“.

Why is that?

By default, Configuration Manager only collects, as defined by Default Client Settings in Client Settings, programs registered in:

Root\cimv2\Win32Reg_AddRemovePrograms
Root\cimv2\Win32Reg_AddRemovePrograms64

Note that the two classes exist only when you install Configuration Manager client on the client.

However, it turned out that zoom.exe installation information is not recorded in the two WMI classes. As where the installer writes the installation information of a software totally depends on the software vendor, it is difficult for us to find the installation information in WMI without the software vendor telling us the exact information. I managed to locate the zoon.exe installation information, which was actually written into:

Root\cimv2\Win32_InstalledWin32Program

Unfortunately this class is not included in hardware inventory by default. The good news is that you can add it to hardware inventory with just a few steps.

  1. Open Configuraton Manager console and navigate to \Administration\Overview\Client Settings
  2. Click on Default Client Settings and select Hardware Inventory
  3. Click on Set Classes…
  4. Click on Add, then Connect
  5. Put root\cimv2 into WMI namespace field
  6. Select Installed Win32Program (win32_installed32program) from Inventory class and click on Ok。
  7. After the client setting is pushed, you can see zoom.exe appears on the next hardware inventory cycle

You can view the hardware inventory via Resource Explorer, where you can find a new node named Installed Win 32Program.

If you want to use a query-based report to get installed programs information, make use of the following query:

SELECT [MachineID]
,[InstanceKey]
,[RevisionID]
,[AgentID]
,[TimeKey]
,[rowversion]
,[Name00] as [DisplayName00]
,[Vendor00] as [Publisher00]
,[Version00]
FROM [CM_PS1].[dbo].[INSTALLED_WIN_32PROGRAM_DATA]
UNION
SELECT [MachineID]
,[InstanceKey]
,[RevisionID]
,[AgentID]
,[TimeKey]
,[rowversion]
,[DisplayName00]
,[Publisher00]
,[Version00]
FROM [CM_PS1].[dbo].[Add_Remove_Programs_64_DATA]
UNION
SELECT [MachineID]
,[InstanceKey]
,[RevisionID]
,[AgentID]
,[TimeKey]
,[rowversion]
,[DisplayName00]
,[Publisher00]
,[Version00]
FROM [CM_PS1].[dbo].[Add_Remove_Programs_DATA]

References

Design a site like this with WordPress.com
Get started