본문 바로가기

윈도우 일반

윈도우에 새로운 장치의 연결을 제한하기 [정책에 의해 장치를 설치할 수 없습니다]




정책을 통해 현재 사용 중인 장치 외의 모든 새로운 장치들의 설치를 제한하기

어떤 특수한 곳에선 현재 컴퓨터에서 사용 중인 장치 외에 새로운 추가적인 장치의 설치(연결)을 제한해야 할 경우가 있습니다. 그럴 땐 현재 윈도우에 설치되어 사용 중인 장치들 외에 추가적으로 그 어떤 다른 장치도 설치하여 사용하지 못하게 정책적으로 제한할 수 있습니다. 이 정책을 사용하면 "현재 윈도우에서 (드라이버가) 설치되어 사용 중인 장치" 외에 새로운 장치는 전혀 연결할 수 없으며(설치되지 않으며), 현재 사용 중인 장치들의 드라이버도 새로 업데이트할 수 없게 됩니다. 참고로 이 정책은 윈도우 비스타, 윈도우 7, 윈도우 8 에 공통적으로 적용되며, 윈도우 XP 이하에서는 지원되지 않습니다.



1. 그룹 정책 편집기를 통해 정책 설정하기

현재 사용 중인 윈도우가 그룹 정책 편집기를 지원하는 Professional 이나 Ultimate, Enterprise 와 같은 에디션이라면 아래와 같이 그룹 정책 편집기를 통해 작업을 진행할 수 있습니다.

01. 실행 -> gpedit.msc -> 컴퓨터 구성 -> 관리 템플릿 -> 시스템 -> 장치 설치 -> 장치 설치 제한 -> 다른 정책 설정에 의해 기술된 장치 설치 방지 -> 사용으로 설정합니다.



02. 관리자 권한으로 명령 프롬프트를 실행한 후 다음의 명령을 내려 설정한 정책을 반영합니다. 또는 시스템을 재시작하여도 됩니다.

gpupdate /force



이후부터는 새로운 장치를 연결하게 되면 "정책에 의해 장치를 설치할 수 없습니다." 라는 메세지가 출력됩니다. 장치 관리자를 통해 해당 장치를 살펴 보면 장치에 느낌표가 달려 있으며, 시스템 정책에 의해 장치를 설치할 수 없다고 표시됩니다. 이러한 장치는 수동으로 드라이버를 업데이트하려고 해도 드라이버를 설치할 수 없으며, 최종적으로 윈도우에서 해당 정책을 풀기 전까지는 그 어떤 새로운 장치도 사용할 수 없게 됩니다.





다시 새로운 장치를 설치할 수 있도록 원래대로 되돌리려면 [다른 정책에 의해 기술된 장치 설치 방지]의 설정 값을 원래대로 구성되지 않음으로 되돌려주거나 사용 안 함으로 설정하면 됩니다.



2. 레지스트리를 통해 정책 설정하기

현재 사용 중인 윈도우가 Home 에디션과 같은 경우에는 그룹 정책 편집기(gpedit.msc)를 지원하지 않기 때문에 레지스트리를 통해 정책을 설정해야 합니다. 해당 정책을 사용으로 설정하면 생성되는 레지스트리는 아래와 같습니다. 즉, 아래의 레지스트리를 등록하면 위의 정책 편집기를 통해 설정한 것과 동일한 효과를 얻을 수 있는 것이죠. 특히나 이 중에서 DenyUnspecified 값이 직접적인 장치 설치 제한의 역할을 하게 됩니다.

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DeviceInstall\Restrictions]
"DenyUnspecified"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\PnP]
"PollBootPartitionTimeout"=dword:00000000
"DisableCDDB"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\PnP]
"PollBootPartitionTimeout"=dword:00000000
"DisableCDDB"=dword:00000001


반대로 이를 해제하는 레지스트리는 위의 값들을 지워주면 됩니다.

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DeviceInstall\Restrictions]
"DenyUnspecified"=-

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\PnP]
"PollBootPartitionTimeout"=-
"DisableCDDB"=-

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\PnP]
"PollBootPartitionTimeout"=-
"DisableCDDB"=-







관리자는 정책을 무시하고 장치를 설치할 수 있도록 허용하기

위의 정책을 통해 모든 새로운 장치의 설치를 제한하면 표준 사용자 계정은 물론 관리자 계정 또한 모든 장치를 설치할 수 없게 됩니다. 그런데 사용자가 관리자라면 이 정책을 무시하고 새로운 장치를 설치할 수 있도록 허용할 수도 있습니다. 이런 경우 표준 사용자는 여전히 새로운 장치를 설치할 수 없지만, 관리자는 새로운 장치를 설치할 수 있게 되는 것이죠. 단! 이 때 관리자 계정이라고 할 지라도 1차적으로는 위와 동일하게 장치의 설치가 제한되며, 대신 수동으로 장치 관리자에서 드라이버 업데이트를 통해서 장치를 설치하는 것이 가능해집니다.

참고로 표준 사용자도 사용자 계정 컨트롤을 통해 관리자 계정의 권한을 획득하면(관리자 계정의 암호를 입력하면), 새로운 장치를 설치할 수 있습니다. [이 때는 사용자 계정 컨트롤이 켜져 있어야 합니다.]



1. 그룹 정책 편집기를 통해 정책 설정하기

현재 사용 중인 윈도우가 그룹 정책 편집기를 지원하는 Professional 이나 Ultimate, Enterprise 와 같은 에디션이라면 아래와 같이 정책 편집기를 통해 작업을 진행할 수 있습니다.

01. 실행 -> gpedit.msc -> 컴퓨터 구성 -> 관리 템플릿 -> 시스템 -> 장치 설치 -> 장치 설치 제한 -> 관리자가 장치 설치 제한 정책을 다시 정의하도록 허용 -> 사용으로 설정합니다.



02. 관리자 권한으로 명령 프롬프트를 실행한 후 다음의 명령을 내려 설정한 정책을 반영합니다. 또는 시스템을 재시작하여도 됩니다.

gpupdate /force



이후부터는 새로운 장치를 연결하게 되면 마찬가지로 우선은 "정책에 의해 장치를 설치할 수 없습니다." 라는 메세지가 출력됩니다. 또한 장치 관리자를 통해 해당 장치를 살펴 보면 장치에 느낌표가 달려 있고 시스템 정책에 의해 장치를 설치할 수 없다고 표시됩니다. 하지만 이전과 다르게 관리자 계정이라면 이곳에서 드라이버 업데이트를 통해 수동으로 장치를 설치할 수 있습니다.




또한 이야기한 것과 같이 표준 사용자라 할 지라도 사용자 계정 컨트롤이 켜져 있다면, 드라이버 업데이트를 진행하면 사용자 계정 컨트롤 창이 뜨게 되고, 관리자 계정의 권한을 획득하여 장치를 설치할 수 있습니다. 물론 이 때 관리자 계정의 암호를 정확하게 알고 있어야 하는 것은 당연한 것이겠죠.



하지만 만약 사용자 계정 컨트롤이 꺼져 있다면 이 과정을 진행할 수 없기 때문에 표준 사용자 계정으론 새로운 장치를 설치할 수 없게 됩니다. 이럴 땐 사용자 계정 컨트롤을 끈 것이 오히려 더욱 제약이 되는 상황이 되어버리네요. ^^



2. 레지스트리를 통해 정책 설정하기

마찬가지로 현재 사용 중인 윈도우가 Home 과 같은 에디션이라면 그룹 정책 편집기를 사용할 수 없기 때문에 레지스트리를 통해 작업을 진행해야 합니다. 아무튼 이번 단락에서 설명한 정책에 해당하는 레지스트리는 아래와 같습니다.

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DeviceInstall\Restrictions]
"AllowAdminInstall"=dword:00000001


반대로 이를 해제하는 레지스트리는 위의 값을 지워주면 됩니다.

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DeviceInstall\Restrictions]
"AllowAdminInstall"=-







그 외에 장치를 제한하고 허용하는 정책들에 대해

이 외에도 하드웨어 ID 를 통해 특정 장치만 설치를 제한한다거나, 클래스를 통해 특정 장치군의(예, 모든 마우스, 모든 키보드 등) 설치를 제한할 수도 있습니다. 또한 글에서 설명한 것과 같이 모든 장치의 설치를 제한한 후 일부 특정 장치, 장치군의 설치는 허용하도록 설정할 수도 있습니다. 참고로 이러한 장치 설치의 제한과 허용에 대한 모든 정책은 그룹 정책 편집기의 [컴퓨터 구성 -> 관리 템플릿 -> 시스템 -> 장치 설치 -> 장치 설치 제한] 에서 설정할 수 있습니다.



이에 대한 자세한 내용은 다음의 문서들을 참고해보시길 바랍니다.



참고로 이 때 장치 ID 는 하드웨어 ID 를 통해 구별되는 구체적인 장치를 의미하는 것이고[예 : Intel(R) PRO/1000 MT Network Connection 과 같이 특정 장치 자체를 지정], 장치 설치 클래스는 장치 클래스를 통해 구별되는 좀 더 포괄적인 장치군을 의미하는 것입니다. [예 : Net 모든 네트워크 어댑터와 같이 해당 장치군을 지정] 아무튼, 이러한 장치의 하드웨어(장치) ID 와 장치 클래스는 장치 관리자에서 하드웨어의 속성을 통해 확인할 수 있습니다.









추가

마지막으로 첨언하자면 이 글은 아래의 질문에 의해 작성하게 되었습니다. [질문 주셨는데 제가 잠시 블로그를 쉬던 상황이었던지라 확인이 너무 늦어서 죄송합니다. 제가 요즘 트위터를 잘 안 해서요. ㅜ_ㅜ]



만약 어떠한 원인으로 이번 글에서 설명한 정책이 설정된 것이라면, 이번 글에서 설명한 내용대로 그룹 정책 편집기나 레지스트리를 통해 정책을 다시 되돌리는 것으로 문제를 해결할 수 있을 테지만, 만약 정책적인 문제가 아니라면 그 원인이 정확하게 무엇인지는 저도 잘 모르겠습니다. 이 내용이 맞길 바랄 뿐입니다. 이번 글은 여기까지 입니다.