Windows: Скрываем пустые диски кард-ридера и DVD с помощью USBDLM

У меня на компе установлен кард-ридер Ginzzu GR-139URCB. Первое время он работал как надо и скрывал пустые диски, но потом что-то сбойнуло, и в папке «Мой компьютер» стали отображаться дисков 8, которые должны быть как бы с флешками, но флешек там не было, поэтому они мне мешались.
В идеале драйвер кард-ридера должен скрывать пустые диски. В принципе это можно сделать и средствами Семерки (Сервис -> Параметры папок -> Вид -> Скрывать пустые диски в папке «Компьютер»), но это работает лишь при условии, что стоит настройка «не показывать скрытые файлы, папки и диски», а мне это не надо — хочу видеть все скрытое. Поэтому нашел утилиту USBDLM — USB Drive Letter Manager for Windows. Она работает как служба. Правда ставится не совсем обычно:

Качаем архив, распаковываем и копируем всю папку в «Program files», далее переименовываем или копируем в новый файл USBDLM_sample.ini.
Новый файл должен называться USBDLM.ini
В нем нужно исправить ноль на единицу в строке NoMediaNoLetter=0
Т.о. будет NoMediaNoLetter=1
После этого файл сохранить, а потом запустить установку службы, с помощью файла _install.cmd

Нужно быть внимательным при редактировании файла с помощью Блокнот, т.к. в этом случае он сохранит файл уже с расширением .txt, из-за чего утилита эти настройки уже не увидит.

 

В некоторых случаях отдельные диски кард-ридера не скрываются. Так например не скрывался кард-ридер, встроенный в мой монитор Dell.
Анализ настроек этой программы показал что вроде все нормально (для этого нужно было запустить утилиту ListUsbDrives.exe из комплекта):

MountPoint        = P:\
Volume Label      = ---
Volume Size       = no media
Volume Serial     = ---
Volume Name       = \\?\Volume{a6b26746-b1ca-11df-a62c-806e6f6e6963}\
Partition Name    = \Device\Harddisk6\Partition1
Bus Type          = USB
Drive Type        = removable
Device Types      = CardReader
NoMediaNoLetter   = no (configure >= 2)
INI Sections      = [DriveLetters]
Volume DevID      = STORAGE\VOLUME\_??_USBSTOR#DISK&VEN_GENERIC&PROD_ULTRA_HS-SD#MMC&REV_1.82#000000264001&0#{53F56307-B6BF-11D0-94F2-00A0C91EFB8B}
Drive DevID       = USBSTOR\DISK&VEN_GENERIC&PROD_ULTRA_HS-SD/MMC&REV_1.82\000000264001&0
USB   DevID       = USB\VID_0424&PID_4060\000000264001
Host Ctrl DevID   = PCI\VEN_8086&DEV_3A3A&SUBSYS_82D41043&REV_00\3&11583659&0&EF
Host Ctrl Name    = Intel(R) ICH10 Family USB Enhanced Host Controller - 3A3A
Volume KernelName = \Device\HarddiskVolume9
Disk KernelNames  = \Device\Harddisk6\DR6, \Device\000000af
Removal Policy    = surprise removal ('Optimize for quick removal')
Partition Number  = 1 of 1
Friendly Name     = Generic Ultra HS-SD/MMC
Requested Power   = 96 mA (bus powered)
USB Version       = 2.0 (High-Speed)
USB.ID Name       = Standard Microsystems Corp. - Ultra Fast Media Reader
USB Friendly Name = Generic Ultra Fast Media Reader
USB Serial        = 000000264001
USB Port Name     = 7-5-1-1

Программа «видит», что устройства чтения карт памяти пустое (Volume Size  = no media), но при этом она «ругается на настройку (NoMediaNoLetter   = no (configure >= 2)).
Я поменял эту настройку в файле USBDLM.ini, была 1, поставил 2, но ничего не изменилось — в «Мой компьютер» этот диск продолжал отображаться, хотя флешки там не было.
Как выяснилось позже, Windows Seven x64 для пользователя создает виртуального дублера хранилища:
вместо C:\Program Files\USBDLM он сохранял мой обновленный файл настроек в папку C:\Users\DenTNT\AppData\Local\VirtualStore\Program Files\USBDLM, но при этом служба USBDLM.exe продолжала считывать старые настройки. Поэтому, чтобы изменить настройки именно те, что нужно, я запустил текстовый редактор от имени администратора «run as» (до этого я работал с правами пользователя) и внес нужные настройки в файл C:\Program Files\USBDLM\USBDLM.ini.Потом перезапустил службу USBDLM.

В последних версиях USBDLM появилась возможность скрывать пустые DVD и CD-диски.
Для этого нужно:
1. Запустить утилиту UsbDriveInfo.exe (она входит в комплект установки).
2. Для того привода, который необходисмо скрывать, найти его Device ID:
USBDLM-hide_DVD
3. Открыть файл настроек и внести измененные строки:

[Settings]

; here you can let USBDLM remove driveletters of cardreaders as long
; as there is no media present
NoMediaNoLetter=3

[NoMediaNoLetterInclude]
DeviceID1=IDE\CDROMOPTIARC_DVD_RW_AD-7243S_________________1.03____\5&7C13A87&0&3.0.0

4. Перезапустить службу USBDLM.

В последних версиях USBDLM появилась возможность блокировать установку USB-клавиатур и USB-сетевых карт (профилактика борьбы с BadUSB — BadUSB Device Blocking).