<In Story>

특정 드라이브 탐색기에서 숨기고 접근 막기 // [OS] [MS Windows] [Explorer] [Disk Partition] 본문

OS(operating system)/MS WIndows

특정 드라이브 탐색기에서 숨기고 접근 막기 // [OS] [MS Windows] [Explorer] [Disk Partition]

<In Story, Hi story, History> 2015. 6. 27. 14:11

http://cappleblog.co.kr/198


특정 드라이브를 숨기고 접근을 막고 싶다면?


윈도우에서는 자신이 원하는 드라이브를 윈도우 탐색기에서 숨기거나 윈도우 탐색기를 통한 접근을 제한할 수 있습니다. 이것은 로컬 그룹 정책 편집기(gpedit.msc) 를 통해 간단하게 설정할 수 있죠.


▼ 드라이브 숨기기

gpedit.msc -> 사용자 구성 -> 관리 템플릿 -> Windows 구성 요소 -> Windows 탐색기 -> 내 컴퓨터에 있는 지정된 드라이브 숨기기



▼ 드라이브 접근 막기

gpedit.msc -> 사용자 구성 -> 관리 템플릿 -> Windows 구성 요소 -> Windows 탐색기 -> 내 컴퓨터에 있는 드라이브 액세스 금지



하지만 로컬 그룹 정책 편집기를 통하는 방법은 A, B, C, D 이 네 가지 드라이브, 또는 모든 드라이브에 대한 설정만 할 수 있습니다. 그래서 그 외의 좀 더 다양한 구성의 드라이브를 숨기거나 접근을 제한하기 위해서는 레지스트리를 활용해야 합니다.




레지스트리를 통해 특정 드라이브를 숨기거나 접근을 제한하기

먼저 레지스트리를 알아보기 전에 드라이브마다 지정된 고유의 값이 있는데 이는 아래와 같습니다.

드라이브 값
Drive 2^n Dec Hex Drive 2^n Dec Hex
A 2^0 1 1 N 2^13 8192 2000
B 2^1 2 2 O 2^14 16384 4000
C 2^2 4 4 P 2^15 32768 8000
D 2^3 8 8 Q 2^16 65536 10000
E 2^4 16 10 R 2^17 131072 20000
F 2^5 32 20 S 2^18 262144 40000
G 2^6 64 40 T 2^19 524288 80000
H 2^7 128 80 U 2^20 1048576 100000
I 2^8 256 100 V 2^21 2097152 200000
J 2^9 512 200 W 2^22 4194304 400000
K 2^10 1024 400 X 2^23 8388608 800000
L 2^11 2048 800 Y 2^24 16777216 1000000
M 2^12 4096 1000 Z 2^25 33554432 2000000
A 지정 = 1
AB 지정 = 1 + 2 = 3
ABC 지정 = 1 + 2 + 4 = 7
모든 드라이브 지정 = 1 + 2 .... + 33554432 = 67108863(Hex 3FFFFFF)


즉, A 를 지정하려면 1 을, B 를 지정하려면 2 를, A 와 B 를 함께 지정하려면 이 둘을 더한 3 이 되는 것이죠. 이런 식으로 원하는 드라이브들을 지정할 수 있습니다. 참고로 모든 드라이브를 지정하면 10진수로는 67108863 16진수로는 3FFFFFF 이 됩니다. 간단하죠?


이제 이 내용을 토대로 아래의 레지스트리를 보시길 바랍니다.


특정 드라이브를 숨기는 레지스트리 (ex. Z: 드라이브)

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoDrives"=dword:02000000

특정 드라이브로의 접근을 제한하는 레지스트리 (ex Z: 드라이브)

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoViewOnDrive"=dword:02000000


간단하죠? 참고로 reg.exe 명령이나 .reg 레지스트리 파일에서는 dword 값을 16진수 형태로 입력해 주어야 합니다. 그래서 위의 레지스트리들은 순서대로 Z: 드라이브를 숨기고 Z: 드라이브로의 접근을 막는 것이 되는 것이죠.

이제 동시에 여러 드라이브를 지정할 때에는 각 드라이브들의 값을 더해야 하죠. 근데 이게 10진수로는 계산이 얼른 되는데 이를 reg.exe 명령이나 .reg 파일에서 사용하기 위해 16진수로 변환하고자 할 때에는 좀 어려울 수 있습니다. 그럴 땐 미리 소개해드린 아래의 프로그램을 사용하시면 편리합니다.

  HDOD - 간단한 Hex, Dec, Oct, Bin 숫자 변환


아무튼 reg 명령이나 .reg 레지스트리 파일에서는 이렇게 사용하시구요. 간단하게 레지스트리 편집기(regedit.exe)를 통해 직접 작업하시려면 아래와 같이 하시면 됩니다. 예제를 보시죠.


예제 1


E: 드라이브와 F: 드라이브를 탐색기에서 숨기고, 이 중에서 F: 드라이브는 탐색기를 통한 접근도 막습니다.

자 작업을 시작하기 전에 먼저 계산을 해보면 아래와 같습니다. [계산은 10진수로 계산하겠습니다.]

드라이브 숨김(NoDrives) : E + F -> 16 + 32 -> 48
드라이브 제한(NoViewOnDrive) : F -> 32


그럼 이를 토대로 레지스트리를 편집해 보도록 하죠.

01. 실행 또는 시작 메뉴의 검색란을 통해 레지스트리 편집기(regedit.exe)를 실행한 후 다음의 레지스트리 키로 이동합니다.

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]

02. 해당 레지스트리 키로 이동하였으면 Dword 값을 생성합니다. 이후 값의 이름을 NoDrives 로 변경해 줍니다. [NoDrives = 드라이브 숨기기]



03. 준비된 NoDrives 값의 데이터로 미리 계산한 값을 넣어줍니다. [10진수(Dec) 기준 48 = E + F]



04. 마찬가지의 방법으로 Dword - NoViewOnDrive 값을 생성한 후 값 데이터로 앞서 계산한 값을 넣어줍니다. [10진수(Dec) 기준 32 = F]



05. 결과를 반영하기 위해 시스템을 재시작하거나 로그오프 후 재로그인 합니다.


윈도우를 다시 시작한 후 윈도우 탐색기를 통해 내 컴퓨터를 살펴본 모습입니다. 작업대로 E: 드라이브와 F: 드라이브가 표시되지 않죠.



이 중에서 E: 드라이브의 경우 단순히 숨기기만 했기 때문에 윈도우 탐색기의 주소 표시줄에서 드라이브 경로를 직접 타이핑하여 접근이 가능합니다.



하지만 F: 드라이브의 경우 NoViewOnDrive 를 통해 탐색기를 통한 접근도 막았기 때문에 접근을 하려면 아래와 같이 거부하게 됩니다.



어떤가요? 이제 NoDrives 와 NoViewOnDrive 값의 정확한 용도를 아실 수 있겠죠? 참고로 해당 값들은 보신 것과 같이 독립적으로 움직입니다. 이는 특정 드라이브를 단순히 숨기기만 할 수도 있고, 숨기지 않고 접근의 제한만 막을 수도 있으며, 숨기고 접근의 제한을 막을 수도 있습니다. 반드시 셋트로 함께 써야한다는 건 아니죠.

또한 이렇게 탐색기에서 숨기고 접근을 막더라도 단순히 탐색기에서만 제한하는 것일 뿐 드라이브 안에 포함된 프로그램이나 파일들을 사용하는데에는 아무런 문제가 없습니다. 그래서 이러한 특성을 활용하여 대부분의 피씨방에선 D: 드라이브에 게임이나 프로그램들을 깔아두고 D: 드라이브를 숨기고 접근을 제한하는 방법을 사용하고 있습니다. 이렇게 설정해 두었다고 우리가 피씨방에서 D: 드라이브에 설치된 게임이나 프로그램을 사용하지 못하는 것은 아니잖아요? 게임 업데이트가 안 되는 것도 아니구요. 그런겁니다.

대신 숨겨두거나 접근을 제한하면 정확한 파일의 경로를 모를 경우(프로그램의 경우 바로 가기가 없거나) 사람들이 해당 드라이브의 파일(프로그램)들을 사용하는데에는 좀 애로가 있겠죠?




해당 방식의 한계

이렇게 레지스트리를 통해 특정 드라이브를 숨기거나 접근을 제한하더라도 해당 드라이브 안에 포함된 파일이나 프로그램들은 사용이 가능하죠. 이는 탐색기(또는 탐색기를 활용하는 기능 - ex 파일 선택 창) 외의 프로그램들을 통한 접근은 가능하다고 말할 수 있습니다. 그래서 토탈 커맨더류의 윈도우 탐색기와는 전혀 별개로 독립적으로 작동하는 파일 관리 프로그램을 통하면 숨겨진 드라이브도 보이고 접근을 제한한 드라이브도 아무런 문제없이 접근이 가능합니다.



근데 생각해보면 이럴 수 밖에 없는 게, 이런 것까지 막으려면 탐색기 뿐만 아니라 모든 프로그램에서 해당 드라이브가 숨겨지거나 접근을 할 수 없게 해야 하는데, 그러면 윈도우에서 해당 드라이브를 아예 쓸 수 없는 게 되버리는 거죠. 그럼 파티션의 드라이브 문자를 제거해버리는거랑 다를 게 없죠.

뭐 그렇습니다. 여기까지 하죠. ^^