Но бесплатных средств, работающих под ОС Windows и более менее управляемых в небольшой сети, найти не удалось.
Платные средства дешевле 500 рублей за рабочее место не существуют, что в нынешних условиях непосильные деньги для многих компаний. Посему на коленке был сделан небольшой скрипт, который каждый час запускается на АРМ пользователей. Запуск и его контроль осуществляется средствами Microsoft SMS (который уже есть в наличии).
Данный скрипт позволяет довольно успешно контролировать работу сменных носителей в небольшом домене, содержащем чуть более 150 рабочих станций и серверов.
Скрипт может запускаться так же средствами групповой политики Active Directory, но механизм этот не столь гибок, сколь хотелось бы.
Небольшие комментарии по коду:
- первый цикл определяет имя пользователя вошедшего в систему
- второй цикл определяет входит ли пользователь в доменную группу "UsbFullControl", назначение группы понятно из её названия
- третий цикл делает то же для группы "UsbReadOnly"
- если пользователь не входит ни в одну из групп, значит ему не повезло - выключается возможность работы со всеми сменными устройствами
- иначе делаются настройки облегчающие работу с флешками и разрешающие работу с дискетами и оптическими дисками
- Для работы скрипта нужны административные права, либо права SYSTEM, то есть он не эффективен в сети, где большое число пользователей имеет права локальных администраторов.
Источники идеи уже не найду. Среди них результаты поиска по словам "usb control security", а так же материалы с сайта Microsoft.
---------------
@ECHO OFF
:: delims is a TAB followed by a space
FOR /F "tokens=2* delims= " %%A IN ('REG QUERY "HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon" /v DefaultUserName') DO SET LastLogon=%%B
For /F "tokens=1" %%A in ('net user %LastLogon% /domain ^| find /i "UsbFullControl"') Do Set Group=%%A
IF NOT "%Group%"=="" GOTO UsbFullControl
For /F "tokens=1" %%A in ('net user %LastLogon% /domain ^| find /i "UsbReadOnly"') Do Set Group=%%A
IF NOT "%Group%"=="" GOTO UsbReadOnly
:UsbDenyAll
move %SystemRoot%InfUsbstor.pnf %SystemRoot%InfUsbstor.pnf.old
move %SystemRoot%InfUsbstor.inf %SystemRoot%InfUsbstor.inf.old
> "%Temp%.usb.reg" echo REGEDIT4
>>"%Temp%.usb.reg" echo.
>>"%Temp%.usb.reg" echo [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesFlpydisk]
>>"%Temp%.usb.reg" echo "Start"=dword:00000004
>>"%Temp%.usb.reg" echo [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesSfloppy]
>>"%Temp%.usb.reg" echo "Start"=dword:00000004
>>"%Temp%.usb.reg" echo [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesCdrom]
>>"%Temp%.usb.reg" echo "Start"=dword:00000004
>>"%Temp%.usb.reg" echo [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesUsbStor]
>>"%Temp%.usb.reg" echo "Start"=dword:00000004
>>"%Temp%.usb.reg" echo [HKEY_LOCAL_MACHINESystemCurrentControlSetControlStorageDevicePolicies]
>>"%Temp%.usb.reg" echo "WriteProtect"=dword:00000001
>>"%Temp%.usb.reg" echo.
start /wait regedit /s "%Temp%.usb.reg"
del "%Temp%.usb.reg"
GOTO End
:UsbFullControl
move %SystemRoot%InfUsbstor.pnf.old %SystemRoot%InfUsbstor.pnf
move %SystemRoot%InfUsbstor.inf.old %SystemRoot%InfUsbstor.inf
> "%Temp%.usb.reg" echo REGEDIT4
>>"%Temp%.usb.reg" echo.
>>"%Temp%.usb.reg" echo [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesFlpydisk]
>>"%Temp%.usb.reg" echo "Start"=dword:00000003
>>"%Temp%.usb.reg" echo [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesSfloppy]
>>"%Temp%.usb.reg" echo "Start"=dword:00000003
>>"%Temp%.usb.reg" echo [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesCdrom]
>>"%Temp%.usb.reg" echo "Start"=dword:00000003
>>"%Temp%.usb.reg" echo [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesUsbStor]
>>"%Temp%.usb.reg" echo "Start"=dword:00000003
>>"%Temp%.usb.reg" echo [HKEY_LOCAL_MACHINESystemCurrentControlSetControlStorageDevicePolicies]
>>"%Temp%.usb.reg" echo "WriteProtect"=dword:00000000
>>"%Temp%.usb.reg" echo.
start /wait regedit /s "%Temp%.usb.reg"
del "%Temp%.usb.reg"
GOTO End
:UsbReadOnly
move %SystemRoot%InfUsbstor.pnf.old %SystemRoot%InfUsbstor.pnf
move %SystemRoot%InfUsbstor.inf.old %SystemRoot%InfUsbstor.inf
> "%Temp%.usb.reg" echo REGEDIT4
>>"%Temp%.usb.reg" echo.
>>"%Temp%.usb.reg" echo [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesFlpydisk]
>>"%Temp%.usb.reg" echo "Start"=dword:00000003
>>"%Temp%.usb.reg" echo [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesSfloppy]
>>"%Temp%.usb.reg" echo "Start"=dword:00000003
>>"%Temp%.usb.reg" echo [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesCdrom]
>>"%Temp%.usb.reg" echo "Start"=dword:00000003
>>"%Temp%.usb.reg" echo [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesUsbStor]
>>"%Temp%.usb.reg" echo "Start"=dword:00000003
>>"%Temp%.usb.reg" echo [HKEY_LOCAL_MACHINESystemCurrentControlSetControlStorageDevicePolicies]
>>"%Temp%.usb.reg" echo "WriteProtect"=dword:00000001
>>"%Temp%.usb.reg" echo.
start /wait regedit /s "%Temp%.usb.reg"
del "%Temp%.usb.reg"
GOTO End
:End