-Changed to static libraries to avoid the need for the VC redistributables.
-Fixed incorrect display of first device.
-Updated technical details below.
-Added a 64 bit version to resolve a removal error.
-Adjusted names for consistency
We have had several servers with the problem of registry growth due to VSS backups of Hyper-V Virtual Machines. A hotfix is available which we have applied but the overgrown registry still exists. Microsoft has a utility called DevNode clean but they do not publish it. They do however publish source code for creating it yourself. Thanks Microsoft! Most System Administrators are not going to break out Visual Studio and start compiling code (buggy code) to fix this this problem.
I have taken the code and compiled it for you. I have also made many changes to the code to make it behave. The default is no longer to delete the device nodes when you execute it without any command line options. You need to specify -r to have it actually remove the phantom devices. The utility also has the option to list all devices both phantom and non-phantom.
This will only delete phantom devices of type Storage Volume and Disk Drive. Additional devices can be found with tools like Device Remover. Specifically there will be many phantom devices with a type of Storage Volume Shadow Copies. These appear to be used for the Previous Versions feature and should not be removed. Some phantom devices like an unplugged USB disk will currently be detected and removed. I may in a future version optionally detect and not delete these.
Please understand that in using this program, No warranty or responsibility for any problems caused by it are given. Use at your own risk. That said, I did my best to review and test the program.
There are now two versions. One for 32bit operating systems and one for 64 bit.
No longer requires the Microsoft Visual C++ 2010 x64 Redistributables but they are here anyway.
-32 bit applications
Microsoft Visual C++ 2010 Redistributable Package (x86)
-64 bit applications
Microsoft Visual C++ 2010 Redistributable Package (x64)
Microsoft Visual C++ 2010 Redistributable Package (IA64)
DevNodeClean will remove phantom storage device nodes from this machine.
Warning, this will remove ANY storage devices not currently in the system including USB drives and memory cards.
Usage: DevNodeClean /r /l /?
/r displays removes the phantom device nodes. Otherwise only shows what will be removed
/l displays all device nodes including non-phantom. Does not remove unless -r is also included.
(Only phantom devices are ever removed.)
/? displays this help screen
Must be run as administrator
Backup and Restore privileges are required to run this utility.
Use at your own risk! No liability or responsibility is given for use of this software.