I just posted a batch file wrapper around VHD Shell Extensions to find stale VHDs on a Hyper-V Server. However, because of VHDShellExt.vbs design, it will always try to find if the given VHD is associated with a VM on the local Hyper-V machine. One problem with this design is, you need to use the script on all the Hyper-V server machines you have to find any stale VHDs.
I have updated VHDShellExt.vbs to add /Server switch to be able to use it from a non Hyper-V system too. Now, using this new switch you can use the script from even a Windows Server 2003 or Windows XP system.
You can download the new release here http://code.msdn.microsoft.com/VHDShellExt/Release/ProjectReleases.aspx?ReleaseId=3317
Here is the updated documentation for this release http://22.214.171.124/blog/?page_id=612