There's a bug in GatherProducts.exe, which is run via Inventory Scan (in this case 9.0/SP2, and possibly older versions). It hangs (silently stops working) if it encounters an invalid or corrupted shortcut (.LNK), ... which causes the Inventory Scanner to hang too.
I reported this bug to Support, so hopefully a fix will be provided soon.
But watch out if you enable the client purge via Core Server Inventory Service settings. If the client drops out of the database because of this problem, you won't be able to fix it when a patch is available ... even if the rest of the client (patch, policy, etc.) is still functional. Policy & patch will not work because the client doesn't exist in inventory.