
DriveCleanup V1.6.5 - removes non present drives from the device tree
Freeware by Uwe Sieber (c) 2007-2024

Works under Windows XP and higher. Under x64 edtitions of Windows
only the x64 version works.


Removes from the device tree non-present
- USB hubs
- USB mass storage devices 
- Disk devices
- CDROM devices
- Floppy devices
- Storage Volumes
- USB drive's WPD devices

and their registry items under

HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\UsbFlags
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceClasses
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\EMDMgmt
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\CPC\Volume
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\CPC\LocalMOF
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\BitBucket\Volume

Usage:

DriveCleanup [-t] [-n] [-u] [-d] [-c] [-f] [-v] [-r]

no params:  cleanup all
-t          test mode
-n          no wait for keypress when finished if started standalone
-u          only USB mass storage devices 
-d          only Disk devices
-c          only CDROM devices
-f          only Floppy devices
-v          only Storage Volume devices
-r          only registry items of storage volumes
-w          only USB drive's WPD devices

Called with admin previleges and without a parameter it removes all types of devices
listed above and cleans the registry.
Without admin previleges it switches to test mode and shows the items it would remove.


Samples:

DriveCleanup -t
test mode, lists devices and registry items to remove

DriveCleanup
removes non present devices related to drives and their registry items

DriveCleanup -v -d
removes non present USB Storage Volumes and USB Disks


Administrator previleges are required for cleanup.


DriveCleanup isn't stricly limited to drives. USB hubs, UsbFlags and the Enum\NextParentID.xxxxx.n
values may be not drive related.

For other devices there the GUI tool DeviceCleanup:
http://www.uwe-sieber.de/misc_tool_e.html#devicecleanup


DriveCleanup calls Windows device manangement functions for deleting devices entries. If it shows OK
then Windows responded that this succeeded. When finished DriveCleanup checks all again and should
find zero devices if it showed OK for all before. Sometimes Windows says OK but in fact the device
is still present.
Since regular device management functions are used, any removed device's CoInstallers are called
as planned, so you might loose for instance custom Explorer icons for card reader volumes. Just
have the card reader attached while executing DriveCleanup to prevent this.


Starting with Vista, Administrators have no more write access to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum
and even being the owner they have no right to change the permissions. Therefore deleting unreferenced
NextParentID.xxxxx.n items needs more than admin previleges. To get these, DriveCleanup steals the access
token of a system process and impersonates its context to change Enum's security descriptor, then performs the
cleanup and restores the security descriptor. Maybe this alerts security software.

Since V1.4 volumes of the Windows volume shadow copy facility are't skipped anymore. Before they where skipped
because I wasn't sure if it is ok to delete them. Since Microsoft offers it's own tool to do so, I is ok
obviously: https://support.microsoft.com/en-gb/help/982210



Licence: Freeware

Allowed:
- usage in any environment, including commercial
- include in software products, including commercial
- include on CD/DVD of computer magazines
- making available for download by means of package managers

Not allowed:
- modify any of the files
- offer for download by means of a "downloader" software


http://www.uwe-sieber.de/misc_tool_e.html#drivecleanup

Uwe Sieber
Feb 2024


