New in this version

Added: /CFGDIR command line switch - this lets you specify a different location for the cfg file that stores all the settings. Normally this file is located in the same directory as the program but some people wanted a way to change this.

What is USB Disk Ejector?

A program that allows you to quickly remove drives in Windows. It can eject USB disks, Firewire disks and memory cards. It is a quick, flexible, portable alternative to using Windows' "Safely Remove Hardware" dialog.

It will work on any version of Windows from XP onwards, that includes:

What makes this so useful?

It is quick. Rather than clicking through the "Safely Remove Hardware" dialog you can very quickly remove drives or card media. You can even create shortcuts or hotkeys to eject a drive.

It is simple. The program is designed to be easy to use and its advanced options are hidden so that they dont get in the way.

It is portable. It can be stored and used on a removable device like a pen drive. It can even eject the disk that it is running from. It doesnt require administrator rights and doesnt need installing.

It is flexible. There are many features that can be customised such as hotkeys, positioning, notifications and post-eject actions.

It can be run as a command line program. The command line options are very flexible, they can be used to:

So you could setup a hotkey, desktop shortcut or bat file to eject a drive. Or if you use a menu such as PStart or the Portable Apps launcher you could use the command line switches so that with one click the menu will exit, the program will run and the drive will be ejected. See the 'Command Line' section below for more information.

It can eject disks when Vista cant. In Vista, disks often cant be ejected because they have an open explorer window. Other versions of Windows will close any explorer windows belonging to a disk but Vista often doesnt - so USB Disk Ejector closes does it before ejecting.

It can eject disks when Windows sometimes cant. If any applications are running from a disk then Windows wont be able to eject it. USB Disk Ejector can detect and auto-close any applications running from the disk before ejecting. Please note this closes applications that were launched from the disk not applications that have opened a file on the disk. See the limitations section further down for more information.

It is small. Less than 1.5MB (when UPX compressed).

It is open source. All source code can be found on my Github.

What do I need to use this?

A removable USB or Firewire device such as a flash drive, digital camera or external hard drive. Any USB or Firewire device that shows as a disk should be removable by this.

For ejecting card media - such as flash memory cards any internal or external card reader should work.

Using the program

  1. Load the program, if you have any removable USB/Firewire drives or memory cards they will be shown in the list.
  2. If you plug in any additional devices while the program is running then the list will automatically update to show them.
  3. Double click on a device to remove it.
  4. Unplug the device from your computer.

More features:

Command Line

When using the program on the command line, settings that have been created when using the program normally may still be used. If USB_Disk_Eject.cfg is found in the same folder as the program then it will read and use settings from it. Settings such as removal notifications will be dictated by what has been set in options if this file is present.

This is particularly important when dealing with memory cards and card readers. For example if a device has been defined as a card reader in options then when ejecting the program will honor this and eject the card media not the card reader device.

If you dont want the program to inherit options then make sure that USB_Disk_Eject.cfg is not present in the same folder.


The following command line options are available:

The command line switches could be used to eject a drive from the command prompt, a bat file, a desktop shortcut or as part of a script or menu.

Upgrading From Previous Versions (before v1.3)

If you are upgrading from a version before 1.3 then be aware that some command line switches have been removed:

These settings are now set in the options menu. If you are using the program from the command line and USB_Disk_Eject.cfg is found in the same folder as the program then it will read and use settings from it. If its not found then the default settings will be used.

Using these switches with this new version of the program wont cause any problems - they will just be ignored.


Please contact me or create an issue on Github if you spot any bugs or problems that arent listed below.

Acknowledgements And Thanks


The software is provided "as-is" and without warranty of any kind, express, implied or otherwise, including without limitation, any warranty of merchantability or fitness for a particular purpose. In no event shall the initial developer or any other contributor be liable for any special, incidental, indirect or consequential damages of any kind, or any damages whatsoever resulting from loss of use, data or profits, whether or not advised of the possibility of damage, and on any theory of liability, arising out of or in connection with the use or performance of this software.


Contact me.

All my software is completely free. If you find this program useful please consider making a donation. This can be done on my website.

Changelogs for previous versions:

New in version

Added: /EJECTCARD command line switch - this makes it eject the card media rather than the drive itself. Combine it with other switches Eg /REMOVELETTER G /EJECTCARD would eject an SD card in drive G

Changed: The 'Bring to front/restore' hotkey now toggles between hiding/showing the program.

Fixed: Card readers with identical drives like Kingston MobileLite G4. Previously you could only set one drive as a card reader - now if you define one as a card reader both become card readers.

Fixed: Pressing escape to minimize didnt work when 'minimize to tray' was disabled.

Fixed: Memory card ejection via hotkeys. Previously ejecting via a hotkey just ejected the drive regardless of whether it was a card reader or not. Now it behaves like the rest of the program - if it is a card reader then the media is ejected rather than the drive.

Fixed: Memory card ejection when the program is in 'mobile mode' - this is when it copies and restarts itself eg when trying to eject the drive the program is running from. Card reader settings are now respected here - if it is a card reader then the media is ejected rather than the drive.

New in version

Added option to use the escape key to minimize the window.

Fixed problem with some rare drives that dont have a mountpoint. These cant be ejected in the usual way and indeed dont show up in windows' own safely remove dialog. Drives like these are no longer shown in the program.

Stopped compressing with UPX. The exe is now 4MB in size instead of 1.5MB but it means that it uses half the memory which is a worthwhile tradeoff.

New in version

Fixed rare bug that could prevent custom card readers from being identified as a card reader when the program was first run.

New in version and

Fixed tooltip bug that slipped through testing - if you hovered the mouse over the program when there was no drives inserted it would create an error. Many thanks to Bruce Lightfoot for spotting this.

Improved error reporting, if a disk cant be ejected now - it should give a more appropriate response. (If a disk cant be ejected 99% of the time the reason is that a file or process is using the disk).

New in version 1.3.0

There's been a huge number of changes since the last stable version. Most elements of the program have been rewritten. Many bugs have been fixed and there are some significant new features. The most important ones are listed below:

Full changelog for v 1.3.0: