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”.
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.
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, mountvol
któ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ć diskpart
zgodnie 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.