USBメモリを使用できなくするコマンドもしくはバッチ
USBメモリを使用できなくしたい。
対応できる技術探し
1.PNFファイルをアクセス拒否にする方法
2.レジストリ値を変更する方法
3.ローカルグループポリシーで制御する方法
4.製品導入
現場環境について
技術と運用と相談した結果
・普段はUSBメモリを使用禁止にしておいて、「ちょっと使いたいから今だけ使えるようにして!」と言われた時だけ有効にする
・「終わった!」と言われたら再度使用禁止にする
具体的な方法
・レジストリキー
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UsbStor]
の [Start] を [4] にする事でUSBメモリの使用は禁止となり、 [3] にする事で許可できるので、レジストリをそれぞれに変更するバッチを作成する。
・バッチ本体はクライアント側に仕込んでおき、ショートカットアイコンを同階層に作っておく。
・「使えるようにして!」といわれたらリモートで「USBメモリ有効化バッチ」のショートカットアイコンをデスクトップに出して、叩いてもらう。
・叩いてもらったらリモートでショートカットアイコンを消す。
・終わったよと言われたら、「USBメモリ無効化バッチ」のショートカットアイコンをデスクトップに出して、叩いてもらう。
・ただし、この方法だと、本当に無効にしたのかが分からないので、予めバッチ内にログを吐き出すように細工しておく。
書いといてなんだかわかりにくく書いてる気がするけど、とりあえずそのバッチ↓
USBメモリ有効化.bat
@echo off title USBメモリ有効化 echo USBメモリを有効にします。 pause echo 有効化中です。お待ちください。 ping localhost >nul 2>&1 cls reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\USBSTOR" /v "Start" /t REG_DWORD /d 3 /f echo 認識されない場合はUSBメモリを挿し直してください。 echo. pause
USBメモリ無効化.bat
@echo off title USBメモリ無効化 echo USBメモリを無効にします。 pause echo 無効化中です。お待ちください。 ping localhost >nul 2>&1 cls reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\USBSTOR" /v "Start" /t REG_DWORD /d 4 /f echo USBメモリを挿している場合は、次回接続時以降反映します。 echo. pause
蛇足
- ローカルグループポリシーでやるといろいろできるし、設定値も結局レジストリだが、こちらは再起動、ログオフもしくは何らかの方法でのレジストリの再読み込みが必要になるため、今回は不採用
- 外付けHDDはリムーバブルディスクじゃないからすり抜けるかもと思ったけど、外付けHDDもちゃんと無効になってくれた
- pnfのアクセス制限をする方法は、ユーザーに操作をさせる手間と危険性から、真っ先に選択肢からはずした