Odmawiaj aplikacji dostępu do dysku twardego lub woluminu w systemie Windows 7+

12

Chcę odmówić niektórym aplikacjom na moim komputerze dostępu do niektórych dysków lub woluminów logicznych, ale jak dotąd nie mogłem znaleźć rozwiązania.

Tło: Mój komputer ma dysk SSD jako dysk systemowy i 15 TB Raid-6 z pięcioma dyskami twardymi. Sterownik jest skonfigurowany do wyłączania napędów po ~ 10-15 minutach. Jest w porządku, ponieważ czasami nie potrzebuję uzyskiwać dostępu do niczego w Raidzie przez kilka godzin lub nawet dłużej. Niektóre aplikacje, takie jak Adobe Reader, uzyskują dostęp do wszystkich woluminów logicznych podczas uruchamiania z jakiegoś powodu, którego nie rozumiem. Zakładam, że dotyczy to wszystkich woluminów z przypisaną literą dysku. Usunięcie liter i ponowne przypisanie ich nie jest opcją;)

Jak mogę ograniczyć dostęp programu Adobe Reader lub innych aplikacji do tych woluminów moich hostów Raid?

użytkownik654123
źródło
Nie wiem, jak wyłączyć dostęp dla niektórych aplikacji. Ale podejrzewam, że jeśli istnieje narzędzie do odmowy dostępu do dysku SSD dla niektórych aplikacji, utracisz możliwość otwierania plików z tych woluminów. Dlatego w tym przypadku lepiej jest dowiedzieć się, jaką funkcję sprawia, że ​​Adobe Reader odczytuje / zapisuje coś z / na dysk SSD. Spójrz na funkcję „ostatnich plików”. Może za każdym razem sprawdza ich dostępność.
VIK,
Chcę ograniczyć dostęp do Raidu, a nie do SSD. W rzeczywistości nie ma nic w żadnym woluminie Raidu, co byłoby przydatne dla Adobe Reader na moim komputerze. Tak, w moim przypadku wyraźnie chcę stracić możliwość dostępu do czegokolwiek z poziomu Adobe Reader, co nie znajduje się na dysku SSD. Być może masz rację co do funkcji „ostatnich plików” (chociaż w tym przypadku nie ma żadnych nowych plików pochodzących z tych woluminów).
user654123
1
Co powiesz na radykalne rozwiązanie, takie jak użycie innej przeglądarki plików PDF? Nie rozwiązuje to problemów z innymi aplikacjami, ale jak rozumiem, Adobe Reader jest dla ciebie najbardziej denerwujący. en.wikipedia.org/wiki/List_of_PDF_software
VIK
Tak, to najbardziej denerwująca aplikacja :) Miałem nadzieję, że może istnieć wbudowane rozwiązanie tego problemu, ponieważ odmowa dostępu do Internetu za pośrednictwem zapory systemu Windows działa dobrze w przypadku innych programów.
user654123
1
Czy rozważałeś uruchomienie programu Reader jako osobnego użytkownika, który nie ma dostępu do tych woluminów?
TWiStErRob

Odpowiedzi:

6

W systemie Windows nie ma natywnego obsługiwanego sposobu blokowania dostępu do niektórych dysków niektórym procesom, co jest sprzeczne z obecnym charakterem sposobu, w jaki system operacyjny obsługuje dostęp do dysku.

Prawo dostępu określa prawa zalogowanego użytkownika, który uruchamia aplikację. Więc jeśli twórca oprogramowania zdecydował, że jego oprogramowanie powinno przeszukać wszystkie dostępne dyski i nie daje ci możliwości wyłączenia go ... cóż, to złe programowanie, które nie uwzględnia twojego konkretnego przypadku użycia. Ale jest kilka obejść.

Jedynym „pewnym” rozwiązaniem jest 2, ponieważ warstwa wirtualizacji sprzętowej (z maszyny wirtualnej) może blokować dowolne aplikacje w celu próby uzyskania pełnego dostępu do „prawdziwego sprzętu”. Chociaż nie miałem przypadku, w którym rozwiązanie 1 nie działa, ale teoretycznie myślę, że można to obejść.

Opcja „1” - Wyłączanie napędów na „niskim poziomie” - Nie jest wymagane dodatkowe oprogramowanie

Opcja 1a

Możliwe jest wyłączenie woluminów w dolnej warstwie poprzez całkowite wyłączenie dysków, ale spowoduje to wyłączenie wszystkich woluminów na dysku. Możesz to zrobić ręcznie, uruchamiając diskmgmt.msc, a następnie klikając dysk prawym przyciskiem myszy i oznaczając go jako „offline”.

wprowadź opis zdjęcia tutaj

W razie potrzeby powinieneś być w stanie to zrobić również za pomocą skryptu wiersza poleceń. Byłby zastosowany w podobny sposób jak wariant 3a / b. Możesz to zrobić na przykład za pomocą cmd, jak opisano tutaj, lub za pomocą programu PowerShell, jak opisano tutaj .

Opcja 1b

Możesz całkowicie wyłączyć sterownik napędu. Aby zrobić to ręcznie: uruchom diskmgmt.msc, a następnie kliknij prawym przyciskiem myszy, wybierz „opcje”. Następnie przejdź do zakładki „Sterownik” i wybierz „Dezaktywuj”. Dysk „zniknie” w menedżerze dysków i nie będzie już dostępny przez system operacyjny. O ile oprogramowanie nie wykonuje poleceń kodu maszynowego w celu bezpośredniej komunikacji ze sprzętem, aplikacja nie powinna mieć dostępu do napędów. Przynajmniej o ile wiem o tajnikach systemów operacyjnych.

wprowadź opis zdjęcia tutaj

W razie potrzeby powinieneś być w stanie to zrobić również za pomocą skryptu wiersza poleceń. Byłoby zastosować w podobny sposób jak w przypadku opcji 3a / b, przy użyciu, na przykład Devcon.exe. Szczegółowy opis można znaleźć tutaj .

Opcja 2 - Korzystanie ze środowiska wirtualnego (głównie z oprogramowaniem innych firm)

Jeśli uruchomienie aplikacji w środowisku wirtualnym jest w ogóle możliwe, istnieje wiele rozwiązań:

  • w zależności od wersji systemu Windows (wymagany Win7 i wyższy) i licencji (wymagany „Professional”, „Home” nie zrobi), możesz po prostu użyć Hyper-V, aby skonfigurować środowisko wirtualne bez oprogramowania innych firm.

  • możesz użyć oprogramowania innej firmy do skonfigurowania systemu wirtualnego, takiego jak VMplayer, Virtual Box itp. Istnieje wiele darmowych i płatnych alternatyw. Korzystając z tego rozwiązania, będziesz potrzebować drugiej licencji na system Windows (lub pozostawisz ją bez licencji, ale wtedy dostaniesz nakładkę w prawym dolnym rogu ekranu, która każe Ci zarejestrować system Windows). To zdecydowanie uniemożliwi dostęp oprogramowania do napędu.

  • możesz użyć aplikacji „piaskownicy”. Będzie to jednak zależeć od poziomu wirtualizacji oferowanego przez aplikację piaskownicy. W niektórych przypadkach może rozwiązać problem; w innych przypadkach tak nie jest. Na przykład Sandboxie (ten, który harrymc opisuje w swojej odpowiedzi ), nie rozwiązuje problemu z konfiguracją harrymc opisaną w (oryginalnej) odpowiedzi. Chociaż oprogramowanie może blokować dostęp, dysk nadal będzie się obracał. Alternatywą byłoby użycie innej aplikacji piaskownicy, takiej jak Cameyo itp.

Nawiasem mówiąc, oto dobry artykuł na temat głównej różnicy między różnymi programami do wirtualizacji, a zwłaszcza różnicy między „całą” maszyną wirtualną (jak Virtual Box) a aplikacjami „pół wirtualnymi” (jak Sandboxie).

Opcja 3 - odmontowanie tylko woluminów (pozostawiając dysk „nienaruszony”) - nie jest wymagane dodatkowe oprogramowanie, ALE może nie działać w twoim przypadku

Opcja 3a

Zamiast uruchamiać aplikację za pomocą zwykłego skrótu, możesz napisać plik wsadowy za pomocą polecenia, mountvolktóre najpierw odmontowuje nieużywany wolumin, następnie uruchamia aplikację, a następnie ponownie instaluje wolumin, gdy aplikacja nie uzyska już dostępu do dysku. Proces montowania / odmontowywania za pomocą wiersza poleceń opisano tutaj i tutaj . Możesz również użyć diskpartzgodnie z opisem tutaj i tutaj .

Opcja 3b

Alternatywnie możesz po prostu pozostawić dysk odmontowany ogólnie i zamontować go za pomocą pliku wsadowego, który montuje dysk, który uruchamiasz ręcznie w razie potrzeby. Po zakończeniu korzystania z niego możesz ręcznie odmontować go za pomocą drugiego pliku wsadowego. Można to zautomatyzować, monitorując żądania dostępu do systemu plików i zamontuj / odmontuj dysk zgodnie z wymaganiami, przestrzegając pewnych zasad, np. Że niektóre aplikacje nie będą miały dostępu. Ale nie jestem pewien, czy automatyzacja jest warta dodatkowego wysiłku.

Opcja 4 - Ograniczenie dostępu do litery dysku (woluminu). Proste, ale potrzebne są dwa małe narzędzia firmy Microsoft - ALE może nie działać w twoim przypadku

Jeśli chcesz to zrobić bez oprogramowania innych firm, ale nie masz nic przeciwko użyciu dwóch małych narzędzi firmy Microsoft (jeśli jeszcze tego nie używasz). Wolę to rozwiązanie, ponieważ problem występuje „z poziomu katalogu głównego” (rozróżnienie między prawami użytkownika i aplikacji) i jest dość prosty i nie jest potrzebne „duże” oprogramowanie innych firm.

Zasadniczo dodajesz użytkownika bez dostępu do dysku, a następnie uruchamiasz program z tymi ograniczonymi prawami (nadal będziesz się logować jako zwykły użytkownik, nie będziesz używać konta z ograniczonym dostępem do logowania).

  • Dodaj konto użytkownika.

  • Ogranicz dostęp nowego konta użytkownika do dysku za pomocą Kontroli dostępu systemu Windows dla systemu plików. Oto dobre instrukcje, w tym zrzuty ekranu.

  • Następnie uruchom oprogramowanie z tymi prawami. Możesz na przykład użyć do tego PsExec.exe lub Process Explorer, oto jak to zrobić . Jeden z nich musisz pobrać ze strony Microsoft, jeśli jeszcze ich nie masz.

Albin
źródło
4

Proponuję rozwiązanie wykorzystujące Sandboxie . Nie mam twojego środowiska, więc przetestowałem działanie Acrobat.exew piaskownicy, w której dostęp do niego D:został zablokowany. Otwierając w programie Acrobat menu Plik> Otwórz , otrzymuję:

wizerunek

Zauważ, że Acrobat nie może nawet znaleźć etykiety dysku D:, więc jest zmuszony wyświetlić ją w kiepski sposób i jak jest blokowana, kiedy kliknę „Dysk lokalny (D :)”.

Kroki, które zastosowałem to:

  • Zainstalowano Sandboxie
  • W Kontroli Sandboxie kliknij prawym przyciskiem myszy domyślną piaskownicę i wybierz Ustawienia piaskownicy
  • Otwórz gałąź Dostęp do zasobów> Dostęp do plików i kliknij Zablokowany dostęp
  • Kliknij Dodaj program i dodaj Acrobat (moja była C:\Program Files (x86)\Adobe\Acrobat DC\Acrobat\Acrobat.exe)
  • Kliknij Dodaj i dodaj dyskD:
  • Kliknij OK
  • W Sandboxie Control otwórz gałąź Start programu> Wymuszone foldery
  • Kliknij Dodaj folder
  • Dodaj folder, w którym znajduje się Acrobat (moja była C:\Program Files (x86)\Adobe\Acrobat DC\Acrobat)
  • Kliknij OK

Odtąd wszystkie programy uruchamiane z folderu Acrobat są zmuszone do wykonywania piaskownicy, a konkretnie Acrobat.exeblokowanie dostępu do dysku D:. Może być konieczne otwarcie innych ograniczeń piaskownicy, jeśli Acrobat będzie miał trudności z uruchomieniem w piaskownicy.

Nie wiem, czy to również zablokuje określone wywołanie API systemu Windows, którego używa Acrobat, aby spowodować wznowienie dysku, ale może warto spróbować.

Sandboxie to świetny i wszechstronny produkt, który polecam, bezpłatny dla jednego domyślnego piaskownicy. W przypadku wielu piaskownic jest to oprogramowanie płatne, ale cena licencji na całe życie jest bardzo rozsądna (zapłaciłem). Na przykład instaluję testowane produkty w piaskownicy, a następnie mogę je wyczyścić jednym kliknięciem, bez potrzeby deinstalacji.


Innym rozwiązaniem izolacyjnym jest użycie programu Adobe Reader w kontenerze Docker . Kontenery Docker są małe i działają jak maszyny wirtualne, ale bez konieczności tworzenia maszyny, ponieważ gotowe kontenery są pobierane z galerii Docker.

Możesz użyć Chocolatey jako menedżera pakietów.

Chocolatey ma wiele dostępnych gotowych pakietów z Adobe Reader na Adobe Acrobat Reader DC 2018.011.20063 .

Dzięki Dockerowi możliwa jest absolutna izolacja zasobów, a z drugiej strony można współdzielić zasoby, takie jak foldery, w całkowicie natywny sposób.

harrymc
źródło
2
@WackGet: Wszelkie komentarze?
harrymc
Mówi, że to nie działa, dysk wciąż się kręci, przynajmniej w jego przypadku użycia. Zastanawiam się, czy Sandboxie daje ci możliwość ukrywania zasobów w warstwie sprzętowej? Nie zainstalowałem go jeszcze.
Albin
@WackGet: Sandboxie ma więcej ustawień dostępnych w plikach konfiguracyjnych. Ale najpierw: czy dyski budzą się w momencie uruchomienia Adobe, czy tylko przy użyciu menu Plik> Otwórz ?
harrymc
Oprócz powyższego pytania dodałem kolejną lekką opcję izolacji, używając Dockera. Kontenery Docker są małe i działają jak maszyny wirtualne, ale bez konieczności ich tworzenia, ponieważ kontenery są gotowe i są pobierane z galerii Docker.
harrymc
Ciekawy wybór. Którą aplikację Docker masz na myśli, ponieważ jest to raczej rozwiązanie dla programistów / przedsiębiorstw. Niestety, produkty dokerów, na które patrzyłem, nie są darmowe (możliwe tylko wersje próbne) ... ale może przeoczyłem s.th.
Albin