Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I'm automating the removal of a USB printer from machines with Windows XP SP3. To do this, I'm using Microsoft's Devcon Utility.

Running the command:

devcon findall *hp*

Returns:

USBPRINT\HEWLETT-PACKARDHP_LASERJET_PROFESSIONAL_P1606DN\7&8885729&0&USB001: HP
LaserJet Professional P1606dn
1 matching device(s) found.

Running the command:

devcon remove *USBPRINT*

Returns:

No devices removed.

I've tried multiple combinations of the Hardware ID and wildcards with no luck. Plugging the device in to the computer and running the remove command mentioned above removes the hardware.

The issue comes from me using devcon piped to find to determine if the device is plugged in so that it can be automatically configured. If I can't remove it, it will be detected by my script even if it isn't plugged in.

I've tested this with multiple USB printers and one USB mouse, all exhibit the same behavior, which leads me to believe this is normal behavior for Devcon.

Is there a workaround? How do I remove hardware entries that are no longer connected?

share|improve this question

1 Answer 1

up vote 0 down vote accepted

This isn't possible. Devcon cannot remove hardware that isn't currently connected. This is intended behavior. I should have read the documentation better.

The findall command searches for ALL hardware, connected or not. I should have been using the find command, which only searches for currently connected hardware.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.