Windows 7 이상에서 하드 드라이브 또는 볼륨에 대한 응용 프로그램 액세스 거부


12

특정 드라이브 나 논리 볼륨에 액세스하기 위해 컴퓨터의 일부 응용 프로그램을 거부하고 싶지만 지금까지 해결책을 찾지 못했습니다.

배경 : 내 PC에는 시스템 드라이브로 SSD와 5 개의 하드 드라이브가있는 15TB Raid-6이 있습니다. 컨트롤러는 ~ 10-15 분 후에 드라이브를 스핀 다운하도록 구성되어 있습니다. 때로는 2 시간 이상 Raid의 어떤 것에도 액세스 할 필요가 없기 때문에 괜찮습니다. Adobe Reader와 같은 일부 응용 프로그램은 이해할 수없는 이유로 시작될 때 모든 논리 볼륨에 액세스합니다. 드라이브 문자가 할당 된 모든 볼륨이 영향을받는 것으로 가정합니다. 문자를 제거하고 다시 할당하는 것은 전혀 옵션이 아닙니다.)

Adobe Reader 또는 다른 응용 프로그램이 이러한 볼륨에 Raid 호스트에 액세스하지 못하도록 제한하려면 어떻게해야합니까?


특정 응용 프로그램에 대한 액세스를 비활성화하는 방법을 모르겠습니다. 그러나 일부 응용 프로그램의 SSD에 대한 액세스를 거부하는 도구가 있으면 해당 볼륨에서 파일을 여는 기능이 손실 될 것입니다. 따라서이 경우 Adobe Reader가 SSD에서 무언가를 읽고 쓰는 기능을 찾는 것이 좋습니다. "최근 파일"기능을보십시오. 어쩌면 매번 가용성을 확인합니다.
VIK

SSD가 아닌 Raid에 대한 액세스를 제한하고 싶습니다. 실제로 Raid의 볼륨에는 컴퓨터의 Adobe Reader에서 사용되는 볼륨이 없습니다. 따라서 제 경우에는 SSD에없는 내용을 Adobe Reader 내에서 액세스 할 수 없게됩니다. "최근 파일"기능에 대해서는 정확할 수 있습니다 (이 경우 해당 볼륨에서 최근 파일이 나오지 않더라도).
user654123

1
다른 PDF 뷰어 사용과 같은 혁신적인 솔루션은 어떻습니까? 이것은 다른 응용 프로그램의 문제를 해결하지는 않지만 Adobe Reader가 가장 귀찮은 것을 이해합니다. en.wikipedia.org/wiki/List_of_PDF_software
VIK

예, 가장 성가신 응용 프로그램입니다. :) Windows 방화벽을 통한 인터넷 액세스를 거부하면 다른 프로그램에서 제대로 작동하기 때문에 해당 문제에 대한 해결책이 내장되어 있기를 바랐습니다.
user654123

1
해당 볼륨에 액세스 할 수없는 별도의 사용자로 Reader를 실행하는 것을 고려 했습니까?
TWiStErRob

답변:


6

Windows에서는 특정 프로세스가 특정 드라이브에 액세스하는 것을 차단하는 기본 지원 방법이 없습니다. 즉, 운영 체제가 드라이브 액세스를 처리하는 방식이 "현재와 유사"합니다.

액세스 권한은 응용 프로그램을 시작한 로그온 한 사용자의 권한에 의해 결정됩니다. 따라서 소프트웨어 개발자가 자신의 소프트웨어가 모든 액세스 가능한 드라이브를 검색해야하고 드라이브를 끌 수있는 옵션을 제공하지 않기로 결정한 경우에는 특정 사용 사례를 고려하지 않는 나쁜 프로그래밍입니다. 그러나 몇 가지 해결 방법이 있습니다.

(가상 머신의) 하드웨어 가상화 계층이 모든 애플리케이션이 "실제 하드웨어"에 완전히 액세스하는 것을 차단할 수 있기 때문에 유일한 "확실한"솔루션은 2입니다. 솔루션 1이 작동하지 않는 경우는 없지만 이론적으로는 우회 할 수 있다고 생각합니다.

옵션 "1"- "낮은 수준"에서 드라이브 비활성화-추가 소프트웨어 필요 없음

옵션 1a

드라이브를 모두 비활성화하여 하위 계층에서 볼륨을 비활성화 할 수 있지만 드라이브의 모든 볼륨이 비활성화됩니다. 수동으로 시작을 시작한 diskmgmt.msc다음 드라이브를 마우스 오른쪽 버튼으로 클릭하고 "오프라인"으로 표시하십시오.

여기에 이미지 설명을 입력하십시오

필요한 경우 명령 줄 스크립트를 사용하여이를 수행 할 수 있어야합니다. 옵션 3a / b와 유사한 방식으로 적용됩니다. 예를 들어 여기에 설명 된대로 cmd 또는 여기에 설명 된대로 PowerShell을 통해이를 수행 할 수 있습니다 .

옵션 1b

드라이브 드라이버를 모두 비활성화 할 수 있습니다. 수동으로 수행하려면 : 시작 diskmgmt.msc을 마우스 오른쪽 버튼으로 클릭하고 "옵션"을 선택하십시오. 그런 다음 "드라이버"-탭으로 이동하여 "비활성화"를 선택하십시오. 디스크 관리자에서 드라이브가 "사라지고"운영 체제를 통해 더 이상 액세스 할 수 없습니다. 소프트웨어가 하드웨어와 직접 통신하기 위해 머신 코드 명령을 실행하지 않는 한 응용 프로그램이 드라이브에 액세스 할 수있는 방법이 없어야합니다. 최소한 운영 체제에 대한 정보를 알고있는 한.

여기에 이미지 설명을 입력하십시오

필요한 경우 명령 줄 스크립트를 사용하여이를 수행 할 수 있어야합니다. 예를 들어을 사용하여 옵션 3a / b와 유사한 방식으로 적용됩니다 Devcon.exe. 자세한 설명은 여기를 참조 하십시오 .

옵션 2-가상 환경 사용 (주로 타사 소프트웨어와 함께)

가상 환경 내에서 응용 프로그램을 실행하는 것이 옵션이라면 다음과 같은 솔루션이 많이 있습니다.

  • Windows 버전 (Win7 이상 필요) 및 라이센스 ( "Professional"필요, "Home"은 수행하지 않음)에 따라 Hyper-V를 사용하여 타사 소프트웨어없이 가상 환경을 설정할 수 있습니다.

  • 타사 소프트웨어를 사용하여 VMplayer, Virtual Box 등과 같은 가상 시스템을 설정할 수 있습니다. 많은 프리웨어 및 페이웨어 대안이 있습니다. 이 솔루션을 사용하면 Windows 용 보조 라이센스가 필요합니다 (또는 라이센스가없는 상태로두면 화면 오른쪽 하단에 Windows 등록을 지시하는 오버레이가 나타납니다). 이렇게하면 소프트웨어가 드라이브에 액세스하지 못하게됩니다.

  • "샌드 박스"응용 프로그램을 사용할 수 있습니다. 그러나 샌드 박스 응용 프로그램이 제공하는 가상화 수준에 따라 다릅니다. 어떤 경우에는 문제를 해결할 수 있습니다. 다른 경우에는 그렇지 않습니다. 예를 들어, harrymc가 그의 답변 에서 설명하는 Sandboxie 는 자신의 (원래) 답변에서 설명 된 구성 harrymc의 문제를 해결하지 못합니다. 소프트웨어가 액세스를 차단할 수는 있지만 드라이브는 계속 가동됩니다. 대안은 Cameyo 등과 같은 다른 샌드 박스 응용 프로그램을 사용하는 것입니다.

그건 그렇고, 여기 에 다른 가상화 소프트웨어의 주요 차이점, 특히 "가상"가상 머신 (가상 박스) 또는 "반 가상"응용 프로그램 (샌드 박스 등)의 차이점에 대한 좋은 기사 가 있습니다.

옵션 3-볼륨 만 마운트 해제 (드라이브는 "손상없이"남겨 두십시오)-추가 소프트웨어가 필요하지 않지만 귀하의 경우에는 작동하지 않을 수 있습니다

옵션 3a

일반 바로 가기를 통해 응용 프로그램을 시작하는 대신 mountvol먼저 사용하지 않는 볼륨을 마운트 해제 한 다음 응용 프로그램을 시작한 다음 응용 프로그램이 더 이상 드라이브에 액세스하지 않으면 볼륨을 다시 마운트하는 명령 을 사용하여 배치 파일을 작성할 수 있습니다. 커맨드 라인을 통한 마운트 / 마운트 해제 프로세스는 여기여기에 설명 되어 있습니다 . 여기여기에diskpart 설명 된대로 사용할 수도 있습니다 .

옵션 3b

또는 드라이브를 일반적으로 마운트 해제 한 상태로두고 필요할 때 수동으로 시작하는 드라이브를 마운트하는 배치 파일을 통해 마운트 할 수 있습니다. 사용이 끝나면 두 번째 배치 파일을 사용하여 수동으로 마운트를 해제 할 수 있습니다. 파일 시스템 액세스 요청을 모니터링하여 특정 규칙 (예 : 특정 응용 프로그램에 액세스 할 수 없음)에 따라 드라이브를 마운트 / 마운트 해제하여 자동화 할 수 있습니다. 그러나 자동화가 추가 노력을 기울일 가치가 있는지 확실하지 않습니다.

옵션 4-드라이브 문자 (볼륨)에 대한 액세스 제한 간단하지만 Microsoft의 두 가지 작은 도구가 필요했습니다. 그러나 귀하의 경우에는 작동하지 않을 수 있습니다

타사 소프트웨어없이 수행하고 싶지만 Microsoft의 두 가지 작은 도구를 사용하지 않아도됩니다 (아직 사용하지 않는 경우). 이 솔루션은 "루트에 의해"(사용자와 응용 프로그램의 권한에 따라 차이가 있음) 문제가 발생하고 상당히 간단하며 "큰"타사 소프트웨어가 필요하지 않기 때문에이 솔루션을 선호합니다.

기본적으로 드라이브에 액세스 할 수없는 사용자를 추가 한 다음 제한된 권한으로 프로그램을 시작합니다 (여전히 일반 사용자로 로그온하면 제한된 계정을 사용하여 로그온하지 않습니다).

  • 사용자 계정을 추가하십시오.

  • 파일 시스템에 Windows 액세스 제어를 사용하여 새 사용자 계정의 드라이브 액세스를 제한하십시오. 다음은 스크린 샷 포함하는 유용한 방법 입니다.

  • 그런 다음 해당 권한으로 소프트웨어를 시작하십시오. 예를 들어 PsExec.exe를 사용하여 프로세스 탐색기 나 프로세스 탐색기를 수행 할 수 있습니다 . 방법은 다음과 같습니다 . 이 두 가지 중 하나가 없으면 Microsoft 웹 사이트에서 다운로드해야합니다 (아직없는 경우).


4

Sandboxie 를 사용하는 솔루션을 제안합니다 . 귀하의 환경이 없으므로 Acrobat.exe액세스 D:가 차단 된 샌드 박스에서 실행 되는 것을 테스트 했습니다 . Acrobat에서 파일> 열기 메뉴를 열면 다음과 같은 결과가 나타납니다.

영상

Acrobat은 디스크 레이블을 찾을 수 없으므로 레이블이 D:불완전하게 표시되고 "로컬 디스크 (D :)"를 클릭 할 때 차단되는 방식에 유의 하십시오.

내가 사용한 단계는 다음과 같습니다.

  • 설치된 샌드 박스
  • Sandboxie Control에서 기본 샌드 박스를 마우스 오른쪽 단추로 클릭하고 샌드 박스 설정을 선택하십시오.
  • Resource Access> File Access 분기를 열고 Blocked Access를 클릭하십시오.
  • 프로그램 추가를 클릭 하고 Acrobat을 추가하십시오 (광산은 C:\Program Files (x86)\Adobe\Acrobat DC\Acrobat\Acrobat.exe).
  • 디스크 추가 및 추가를 클릭 하십시오.D:
  • 확인을 클릭하십시오
  • Sandboxie Control에서 프로그램 시작> 강제 폴더 의 분기를여십시오.
  • 폴더 추가를 클릭 하십시오
  • 상주 ACROBAT (광산이 있던 폴더 추가 C:\Program Files (x86)\Adobe\Acrobat DC\Acrobat)
  • 확인을 클릭하십시오

이제부터는 Acrobat 폴더에서 실행되는 모든 프로그램이 샌드 박스로 실행되며 특히 Acrobat.exe디스크 액세스가 차단됩니다 D:. Acrobat에서 샌드 박스 내에서 실행하는 데 어려움이있는 경우 다른 샌드 박스 제한을 열어야 할 수도 있습니다.

이것이 Acrobat이 디스크 웨이크 업을 유발하는 데 사용하는 특정 Windows API 호출을 차단할지 여부는 모르겠지만 시도해 볼 가치가 있습니다.

Sandboxie는 하나의 기본 샌드 박스에 대해 무료로 추천하는 훌륭하고 다양한 제품입니다. 여러 샌드 박스의 경우 페이웨어이지만 평생 라이센스 가격은 매우 합리적입니다 (유료). 예를 들어, 테스트 한 제품을 샌드 박스에 설치 한 다음 한 번의 클릭으로 제거 할 수 있으며 제거 프로그램이 필요 없습니다.


또 다른 격리 솔루션은 Docker 컨테이너 내부에서 Adobe Reader를 사용하는 것 입니다. Docker 컨테이너는 작고 가상 머신처럼 작동하지만, 미리 만들어진 컨테이너는 Docker 갤러리에서 다운로드되므로 머신을 만들 필요가 없습니다.

Chocolatey 를 패키지 관리자로 사용할 수 있습니다 .

Chocolatey는 Adobe Acrobat Reader DC 2018.011.20063 에서 Adobe Reader와 함께 사용 가능한 많은 사전 빌드 패키지를 제공 합니다.

Docker를 사용하면 리소스와 관련하여 절대 격리가 가능하지만 폴더와 같은 리소스를 완전히 기본 방식으로 공유 할 수 있습니다.


2
@WackGet : 모든 의견?
harrymc

그는 작동하지 않는다고 말하지만 적어도 유스 케이스에서는 드라이브가 여전히 회전합니다. 궁금합니다. Sandboxie가 하드웨어 계층에서 리소스를 숨길 수있는 옵션을 제공합니까? 아직 설치하지 않았습니다.
Albin

@WackGet : Sandboxie는 구성 파일에서 더 많은 설정을 사용할 수 있습니다. 그러나 먼저 : Adobe가 시작되는 순간 또는 파일> 열기 메뉴를 사용할 때만 디스크가 작동 합니까?
harrymc

위의 질문 외에도 Docker를 사용하여 또 다른 경량 격리 옵션을 추가했습니다. Docker 컨테이너는 작고 가상 머신처럼 작동하지만 컨테이너가 준비되어 있으며 Docker 갤러리에서 다운로드되기 때문에 컨테이너를 만들 필요가 없습니다.
harrymc

재미있는 선택. 개발자 / 기업 솔루션이기 때문에 어떤 Docker 응용 프로그램을 언급하고 있습니까? 불행히도 내가 본 도커 제품은 무료로 사용할 수는 없지만 (시험판 가능) ... 아마도 s.th를 간과했습니다.
Albin
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.