I've noticed that some of the data in the Deployment Console is outdated, and even rebooting the client does not cause the client to send up the correct inventory. How do I force AClient to resend all inventory information?
When AClient gathers up inventory data it caches this information in the following registry key value:
The AClient then will gather up inventory data every time that it starts up and compare against this cache. If the data has not changed (or it does not detect a change) it will send up a partial inventory to the Deployment Server with a flag stating that it did not detect a change, so it will not send a complete inventory. If information stored on the server's database is incomplete or incorrect the AClient might not send up complete inventory due to its cache still having full correct data.
The easiest way to force a full inventory to be gathered AND sent to the server AND for the server to update its database is to simply delete this registry value (or set it to a blank value) and restart the AClient or DAgent service. This can be done manually if only a small number of clients need to be updated, or this can be done through a job if this needs to be done frequently or to a large number of client systems.
Attached to this article is an exported job ( AClientForceInventory.bin ) from Deployment Server 6.9 that can be imported into the Deployment Console and then scheduled against a client system. This job simply deletes this registry key and then restarts AClient service. The job can easily be modified to restart the DAgent service by changing the text in the batch script from "Altiris Client Service" to "Altiris Deployment Agent", and this change would be required if you are using DAgent and not AClients.