While this script is small, and takes up little memory since it basically just rips through the registry and some disk stats for the inventory
Is there any reason not to run the inventory from a single machine? Harvesting info from win32 registry and disks is usually pretty quick (on my network anyway).
If all of your machines are in a domain (assuming NT systems here), you can get a list of them and attempt to harvest. Failures can be noted in a log. This takes care of the machines that are online. In the login script, add a line to log the machine name to a remote share. You can schedule the harvester to scan the share for machines that come online and inventory them.