As a windows mobile programmer I have to fight with ActiveSync aka Windows Mobile Device Center. The newer WM devices come with enhanced network function via USB ActiveSync/WMDC and then each time a new device is connected, you will get a new Mobile Remote Adapter with a new number at the end.
First, I dont need any partnership and so I change my system to do GuestOnly connections with WMDC (Windows Mobile 7, 64Bit system).
OK, second annoyance is the awlays coming up WMDC or WMDC+Mobile Registration Wizard. These Popups can be avoided by changing the call to WMDC.exe to WMDCbase.exe. See also this post.
So, I can connect one of the several devices I have currently for development support (about 10-30) without annoying popups.
But then I found, that for each device and sometimes multiple times, Windows installs a new “Microsoft Windows Mobile Remote Adapter” in Device Manager. I found about 88 instances, where only ONE is needed. Before you can see the inactive adapters, you have to enable Show_Hidden_Devices. One way to show hidden devices is this :
- Click Start, point to All Programs, point to Accessories, and then click Command Prompt.
- At a command prompt, type the following command , and then press ENTER:
- Type the following command a command prompt, and then press ENTER:
- Troubleshoot the devices and drivers in Device Manager.
NOTE: Click Show hidden devices on the View menu in Device Manager before you can see devices that are not connected to the computer.
- When you finish troubleshooting, close Device Manager.
- Type exit at the command prompt.
To remove the hidden, inactive Mobile Remote Instances, you can now right click on every instance, then click UnInstall and then [OK]. But for 88 instances, that is a bunch of clicking.
As programmer, I searched of a way to remove these instances programmatically. OK, I digged google and found DevCon, a tool to manage devices and instances from the command line. Unfortunately, I had to download a CD image of Windows WDK to get DevCon.exe. Then I found a site which described howto install DevCon only.
With the help of DevCon.exe, I produced a list of “Microsoft Windows Mobile Remote Adapter” instances, removed to not numbered one and then built a list of DevCon commands to remove the obsolete instances.
List all Windows Mobile Remote Adapters into a file:
devcon findall "USB\VID_067E&PID_1003&REV_0000" >wm_remote_adapters.txt
“USB\VID_067E&PID_1003&REV_0000″ is the identifier for Windows Mobile Remote Adapter (you can find this by right clicking the instance in device manager and select properties).
USB\VID_067E&PID_1003\0040056A-0E9D-0801-0DE0-01130400682B : Microsoft Windows Mobile Remote Adapter #59 USB\VID_067E&PID_1003\0040056A-0E9D-0801-1B10-010E04000801 : Microsoft Windows Mobile Remote Adapter #6 USB\VID_067E&PID_1003\0040056A-0E9D-0801-0B70-000E0400BA61 : Microsoft Windows Mobile Remote Adapter #24 USB\VID_067E&PID_1003\0040056A-0E9D-0801-1990-001104000E40 : Microsoft Windows Mobile Remote Adapter #77 USB\VID_067E&PID_1003\99461300-B56A-0801-DD17-0FBB99944738 : Microsoft Windows Mobile Remote Adapter #89 ...
Then, in the list wm_remote_adapters.txt, I replaced all line starts etc and built this cmd list:
devcon.exe remove "@USB\VID_067E&PID_1003\0040056A-0E9D-0801-0590-010E0400A43B" devcon.exe remove "@USB\VID_067E&PID_1003\99461300-B56A-0801-5AD3-B56444802FC3" devcon.exe remove "@USB\VID_067E&PID_1003\99461300-B56A-0801-B87A-D1874E00C078" devcon.exe remove "@USB\VID_067E&PID_1003\0040056A-0E9D-0801-1640-01100400B075" ...
Then I saved this cmd list as remove-adapters.cmd and started it from the command prompt. And, voila, all obsolete adapters are gone for now.
From time to time I have to rebuild the lists again to get rid of these many obsolete adapters.