Besides official Google phones, which have adb drivers, most of the phones don't have one to make connection via USB.
Of course you can connect by adb via network but that's another story.
So if you are lucky (or rich) and have official Android device just get latest official Google drivers from:
Get the Google USB Driver.
If your device isn't in official list you can try to find driver in Windows update catalog at http://www.catalog.update.microsoft.com.
Use search by vendor or device name, or string
adb. Alternatively use hardware id.
BTW older version of official Google drivers are also in Windows update catalog.
Most probably you will fail to find drivers for numerous Chinese/noname Android devices. We can reuse official Google drivers. To do that:
Find your USB's hardware VID and PID. Locate your device in Device Manager,
open Properties => Details => Hardware Ids and copy (by
Extract official Google's ADB driver package:
Locate and modify driver's
.inf file (in my case it was
android_winusb.inf) by adding lines, like:
; Meizu %SingleAdbInterface% = USB_Install, USB\VID_2A45&PID_201D %CompositeAdbInterface% = USB_Install, USB\VID_2A45&PID_201D&MI_01
to all sections that has similar lines setting your own hardware id that we've extracted.
Temporary disable driver signing enforcement (run from Administrator, or hit
cmd, and then
cmd# bcdedit /set testsigning off
and reboot. You'll see
Test mode sign in right lower corner of screen.
Locate your device, then follow Properties => Driver => Update => Browse my computer => Let me pick => Hard Disk.... Select Android Composite ADB interface driver and ignore security warning about broken file signature.
Enable signing checks back:
cmd# bcdedit /set testsigning on
and reboot. Hurrah!
As you see Google's adb driver works fine with any Android phone. It's Microsoft policy to forbid class drivers so each vendor is required to provide same driver with different hardware ID and to pay money for Windows Logo® program and signing process.
bcdedit can be run with alternative options:
cmd# bcdedit.exe /set nointegritychecks on cmd# bcdedit.exe /set nointegritychecks off