[Windows] 명령줄 프로그램에서 USB 포트(기타 장치)의 활성화/비활성화를 전환합니다.

배경



USB 동글 등으로 제어된 어플리케이션에 있어서, 복수의 동글이 박혀 있으면 어플리케이션을 기동할 수 없는 등의 제한하에서, 동글을 빼고 꽂는 것이 아니라 소프트웨어로부터 유효/무효를 바꾸고 싶다는 수요가 있었다. (그쪽이 물리적으로도 고장이 줄어들 것 같고)

준비



Microsoft에서 제공하는 devcon.exe 다운로드. (결론부터 말씀드리면 함정이 있었습니다.)
exe를 압축 해제하고 원하는 곳에 복사.

실행



(사용법은 헬프 등, 봐 주세요)

64bit의 방법은 ia64쪽으로.
32bit의 방법은, i386쪽으로.

샘플
C:\tool\devcon\ia64>devcon.exe /?




( ゚ д ゜) 호키?

샘플
C:\tool\devcon\ia64>devcon.exe /?
このバージョンの c:\tool\devcon\ia64\devcon.exe は、実行中の Windows のバージョンと互換性がありません。コンピューターのシステム情報を確認して、プログラムの x86
32 ビット) のバージョンと x64 (64 ビット) のバージョンのどちらが必要か確認してから、ソフトウェアの発行元に問い合わせてください。


(゚д゚)호와이?

어쩔 수 없으니 i386 쪽으로 해본다.

샘플
C:\tool\devcon\i386>devcon.exe /?
Device Console Help:
devcon.exe [-r] [-m:\\<machine>] <command> [<arg>...]
-r if specified will reboot machine after command is complete, if needed.
<machine> is name of target machine.
<command> is command to perform (see below).
<arg>... is one or more arguments if required by command.
For help on a specific command, type: devcon.exe help <command>
classfilter          Allows modification of class filters.
classes              List all device setup classes.
disable              Disable devices that match the specific hardware or instance ID.
driverfiles          List driver files installed for devices.
drivernodes          Lists all the driver nodes of devices.
enable               Enable devices that match the specific hardware or instance ID.
find                 Find devices that match the specific hardware or instance ID.
findall              Find devices including those that are not present.
help                 Display this information.
hwids                Lists hardware ID's of devices.
install              Manually install a device.
listclass            List all devices for a setup class.
reboot               Reboot local machine.
remove               Remove devices that match the specific hardware or instance ID.
rescan               Scan for new hardware.
resources            Lists hardware resources of devices.
restart              Restart devices that match the specific hardware or instance ID.
sethwid              Modify Hardware ID's of listed root-enumerated devices.
stack                Lists expected driver stack of devices.
status               List running status of devices.
update               Manually update a device.
updateni             Manually update a device (non interactive).


멋지다. . .
주의를 기울여 USB 포트 비활성화에 도전



샘플
c:\tool\devcon\i386>devcon.exe status "@USB\VID_058F&PID_6362*"
USB\VID_058F&PID_6362\058F63626420
    Name: USB     Driver is running.
1 matching device(s) found.

C:\tool\devcon\i386>devcon.exe disable "@USB\VID_058F&PID_6362\058F63626420"
アクセスが拒否されました。




막힌



orz

.
..
...
....
.....
......
.......
........

해결



devcon.exe는 Windows Driver Kit (WDK)에 포함되어 있는 Tool이므로 앞서 소개한 다운로드 페이지가 아닌 WDK를 설치하는 것도 devcon.exe를 얻을 수 있습니다. (32bit, 64bit 모두)

무려, 이쪽을 이용하는 것으로, 제대로 제어할 수 있었습니다. (관리자 권한으로만 검증)

샘플
c:\Program Files (x86)\Windows Kits\8.1\Tools\x64>devcon.exe disable "@USB\VID_058F&PID_6362\058F63626420"
USB\VID_058F&PID_6362\058F63626420                          : Disabled
1 device(s) disabled.

c:\Program Files (x86)\Windows Kits\8.1\Tools\x64>devcon.exe enable "@USB\VID_058F&PID_6362\058F63626420"
USB\VID_058F&PID_6362\058F63626420                          : Enabled
1 device(s) are enabled.

마이크로소프트 있는다.

좋은 웹페이지 즐겨찾기