USBストレージを禁止する

USBストレージの利用を禁止する

生徒には使わせたくないが、一部の授業で生徒にも使わせる必要がある。

以下のように対応
もちろんActiveDirectoryとかないので、この対応をすべてのPCにセットする。

<流れ>
USBストレージの利用/停止を切り替える専用のユーザーを作成する。
このユーザは"ようこそ画面"には表示されない
通常はUSBストレージを停止しておく。
USBストレージを使いたいユーザがいた時だけ、
先生がusbstartユーザでログインする。
ログインスクリプトでUSBストレージが利用できるようにレジストリを変更。
利用が終わったら
usbstopユーザでログインし、USBストレージが使えないようにレジストリを変更する。

(1)create new user as usbstop and usbstart

以下のようなバッチプログラムを使ってユーザを作成する。
レジストリの変更を行うので実行にはadmin権限が必要

@echo off

net user usbstop /add
net localgroup administrators usbstop /add


net user usbstart /add
net localgroup administrators usbstart /add

pause


(2)usbstartユーザ、usbstopユーザでそれぞれログインしてprofileを作成する

(3)各ユーザのスタートアップにレジストリ変更スクリプトを配置する
@echo off
copy usbstart.bat "C:\Documents and Settings\usbstart\Start Menu\Programs\Startup"
copy usbstop.bat "C:\Documents and Settings\usbstop\Start Menu\Programs\Startup"
pause

usbstart.bat
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR /v Start /t REG_DWORD /d 3 /f

usbstop.bat
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR /v Start /t REG_DWORD /d 4 /f


(4)各ユーザをようこそ画面に表示させないようにする
@echo off

reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList" /v usbstop /t REG_DWORD /d 0 /f

reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList" /v usbstart /t REG_DWORD /d 0 /f

pause



とりあえずこのような仕組みで運用してみる。



2011/05/10
どうもこの仕組みだけでは防げないことが発覚。
授業中に生徒がUSBを使っているのを目撃したので調べてみた。

上述の方法ではドライバ読み込み済みのUSBストレージは防げるが、
新規のUSBドライバは防げないことが分かった。


新規のUSBメモリの読み書きを禁止するには、USB大容量記憶装置ドライバがインストールされないようにする。
ドライバ情報ファイルのUsbStor.infとUsbStor.pnfのアクセス権を設定し、
ドライバのインストールができないようにする。


ファイルのプロパティでセキュリティタブが見えないときは、
ツール→フォルダオプションから「簡易共有」のチェックボックスを外す。


ファイルの場所は%SystemRoot%\inf。

【参考にしたサイト】
http://www.atmarkit.co.jp/fwin2k/win2ktips/629usb2/usb2.html