Windows 7 ve sonraki sürümlerde uygulamaların sabit sürücüye veya birime erişimini engelleme


12

Bilgisayarımdaki bazı uygulamaları belirli sürücülere veya mantıksal birimlere erişmek için reddetmek istiyorum, ancak şu ana kadar bir çözüm bulamadım.

Arka plan: Bilgisayarımda sistem sürücüsü olarak bir SSD ve beş adet sabit sürücü içeren 15 TB Raid-6 vardır. Denetleyici ~ 10-15 dakika sonra sürücüleri yavaşlatacak şekilde yapılandırılmıştır. Bu iyi bir şey çünkü bazen Raid'deki hiçbir şeye birkaç saat veya daha uzun bir süre erişmem gerekmiyor. Adobe Reader gibi bazı uygulamalar, bir nedenden dolayı başlarken tüm mantıksal hacimlere erişebilirler. Benim varsayım, sürücü harfi atanmış tüm birimlerin etkilenmiş olmasıdır. Harfleri kaldırmak ve yeniden atamak bir seçenek değildir;)

Adobe Reader veya diğer uygulamaların Raid ana makinelerime bu birimlere erişmesini nasıl kısıtlayabilirim?


Belirli bir uygulama için erişimi nasıl devre dışı bırakacağımı bilmiyorum. Ancak, bazı uygulamalar için SSD'ye erişimi reddetmek için bir araç varsa, bu birimlerden dosya açma yeteneğini kaybedeceğinizden şüpheleniyorum. Bu durumda, Adobe Reader'ın SSD'den / SSD'ye bir şey okumasını / yazmasını sağlayan fonksiyonun ne olduğunu bulmaya çalışmak daha iyidir. "Son kullanılan dosyalar" özelliğine bakın. Belki de her seferinde uygunluklarını kontrol eder.
VIK

Baskına erişimi kısıtlamak istiyorum, SSD'ye değil. Aslında, Raid'de herhangi bir birimde, bilgisayarımdaki Adobe Reader'ın kullanacağı hiçbir şey yok. Evet, benim durumumda, SSD'de olmayan Adobe Reader'dan herhangi bir şeye erişme yeteneğini açık bir şekilde kaybetmek istiyorum. Yine de "son dosyalar" özelliği hakkında doğru olabilirsiniz (bu durumda bu birimlerden gelen yeni dosyalar olmasa da).
user654123

1
Başka bir PDF görüntüleyici kullanmak gibi radikal bir çözüm ne olacak? Bu, diğer uygulamalarla ilgili sorunları çözmez, ancak anladığım kadarıyla Adobe Reader sizin için en sinir bozucu şeydir. en.wikipedia.org/wiki/List_of_PDF_software
VIK

Evet, en sinir bozucu uygulama :) Windows güvenlik duvarı üzerinden internet erişimini reddetmek diğer programlar için iyi çalışıyor beri bu sorunun yerleşik bir çözüm olabilir umuyordum.
user654123 17:13

1
Reader'ı bu birimlere erişimi olmayan ayrı bir kullanıcı olarak kullanmayı düşündünüz mü?
TWiStErRob

Yanıtlar:


6

Windows'da, belirli işlemlerin belirli sürücülere erişmesini engellemenin yerel olarak desteklenen bir yolu yoktur; bu, işletim sisteminin sürücü erişimini nasıl işlediğini "geçerli doğaya aykırı" yapar.

Erişim hakkı, uygulamayı başlatan oturum açmış kullanıcı hakları tarafından belirlenir. Yani yazılım geliştiricisi, yazılımının tüm erişilebilir sürücüleri araması gerektiğine karar verdiyse ve size bunu kapatma seçeneği sunmuyorsa ... bu, özel kullanım durumunuzu dikkate almayan kötü programlamadır. Ancak birkaç geçici çözüm var.

Donanım sanallaştırma katmanı (sanal makineden) "gerçek donanıma" tamamen erişmeye çalışmak için herhangi bir uygulamayı engelleyebileceğinden tek "emin" çözüm 2'dir. Çözüm 1'in işe yaramadığı durumda olmamakla birlikte, teorik olarak bunun atlanabileceğini düşünüyorum.

Seçenek "1" - Sürücülerin "düşük seviyede" devre dışı bırakılması - Ek yazılıma gerek yoktur

Seçenek 1a

Sürücüleri tamamen devre dışı bırakarak alt katmandaki birimleri devre dışı bırakmak mümkündür, ancak bu sürücüdeki tüm birimleri devre dışı bırakır. Manuel olarak, başlatabilir diskmgmt.msc, ardından sürücüye sağ tıklayıp "çevrimdışı" olarak işaretleyebilirsiniz.

resim açıklamasını buraya girin

Gerekirse, bunu bir komut satırı komut dosyası kullanarak da yapabilmeniz gerekir. Seçenek 3a / b'ye benzer şekilde uygulanır. Açıklandığı gibi cmd yoluyla, örneğin, bunu yapabilir burada ya PowerShell aracılığıyla da tarif edildiği gibi, burada .

Seçenek 1b

Sürücünün sürücüsünü tamamen devre dışı bırakabilirsiniz. Manuel olarak yapmak için: Başlat diskmgmt.msc, sonra sağ tıklayın, "seçenekler" i seçin. Sonra "Sürücü" sekmesine gidin ve "Devre Dışı Bırak" ı seçin. Sürücü, disk yöneticisinde "kaybolacak" ve işletim sistemine artık erişilemeyecek. Yazılım, donanımla doğrudan iletişim kurmak için makine kodu komutları yürütmedikçe, uygulamanın sürücülere erişmesinin bir yolu olmamalıdır. En azından işletim sistemleri için giriş ve çıkış bilgim kadar.

resim açıklamasını buraya girin

Gerekirse, bunu bir komut satırı komut dosyası kullanarak da yapabilmeniz gerekir. Örneğin, Seçenek 3a / b ile benzer şekilde uygulanır Devcon.exe. Burada ayrıntılı bir açıklama bulabilirsiniz .

Seçenek 2 - Sanal ortam kullanma (çoğunlukla 3. taraf yazılımlarla)

Uygulamayı sanal bir ortamda çalıştırmak bir seçenekse, orada birçok çözüm var:

  • Windows sürümünüze (Win7 ve üstü gerekir) ve lisansınıza ("Profesyonel" gerekir, "Ev" işe yaramaz) bağlı olarak, herhangi bir üçüncü taraf yazılımı olmadan sanal bir ortam kurmak için Hyper-V'yi kullanabilirsiniz.

  • VMplayer, Virtual Box, vb. gibi sanal bir sistem kurmak için üçüncü taraf bir yazılım kullanabilirsiniz. Bu çözümü kullanarak, Windows için ikinci bir lisansa ihtiyacınız olacak (veya lisanssız bırakacaksınız, ancak ekranın sağ alt köşesinde Windows'u kaydetmenizi söyleyecek bir kaplama alacaksınız). Bu kesinlikle yazılımın sürücüye erişmesini önleyecektir.

  • "sanal alan" uygulamasını kullanabilirsiniz. Ancak, sanal alan uygulamasının sunduğu virualizasyon düzeyine bağlı olacaktır. Bazı durumlarda sorunu çözebilir; diğer durumlarda değil. Sandboxie, örneğin (harrymc cevabında açıklandığı gibi ), problemini (orijinal) cevabında tarif edilen konfigürasyon harrymc ile çözmez. Yazılım erişimi engelleyebilse de, sürücü yine de dönecektir. Alternatif olarak Cameyo vb. Gibi farklı bir sanal alan uygulaması kullanmak olabilir.

Bu arada, farklı sanallaştırma yazılımı arasındaki temel fark, özellikle de "bütün" sanal makine (Sanal Kutu gibi) veya "yarı sanal" uygulamalar (Sandboxie gibi) arasındaki fark için iyi bir makale .

Seçenek 3 - Sadece birimleri ayırmak (sürücüyü "bozulmadan" bırakmak) - Ek yazılıma gerek yoktur, ancak durumunuzda çalışmayabilir

Seçenek 3a

Uygulamayı normal kısayoluyla başlatmak yerine, mountvolönce kullanılmayan birimin bağlantısını kesen, ardından uygulamayı başlatan ve uygulama artık sürücüye erişmediğinde birimi yeniden yükleyen komutu kullanarak bir toplu iş dosyası yazabilirsiniz . Komut satırı üzerinden montaj / sökme işlemi burada ve burada açıklanmaktadır . Burada ve buradadiskpart açıklanan şekilde de kullanabilirsiniz .

Seçenek 3b

Alternatif olarak, sürücüyü genel olarak takılı bırakmadan bırakabilir ve gerektiğinde manuel olarak başlattığınız sürücüyü bağlayan bir toplu iş dosyasıyla bağlayabilirsiniz. Kullanmayı bitirdikten sonra, ikinci bir toplu iş dosyasını kullanarak el ile bağlantısını kaldırabilirsiniz. Dosya sistemi erişim isteklerini izleyerek ve belirli kurallara uyarak sürücüyü bağlayarak / bağlantısını keserek, örneğin belirli uygulamaların erişemeyeceğini otomatikleştirebilirsiniz. Ama otomasyonun ekstra çabaya değdiğinden emin değilim.

Seçenek 4 - Bir sürücü harfine (birim) erişimi kısıtlama. Yapması kolay, ancak Microsoft'tan iki küçük araca ihtiyaç duyuldu - AMA durumunuzda çalışmayabilir

3. taraf yazılımı olmadan yapmak istiyorsanız, ancak Microsoft'tan iki küçük araç kullanmayı düşünmeyin (zaten kullanmıyorsanız). Bu çözümü tercih ediyorum çünkü sorunu "kökten" alıyor (kullanıcının ve uygulamanın hakları arasındaki fark) ve oldukça basit ve "büyük" üçüncü taraf yazılımlara gerek yok.

Temel olarak, sürücüye erişimi olmayan bir kullanıcı eklersiniz ve ardından programı bu sınırlı haklarla başlatırsınız (normal kullanıcı olarak oturum açmaya devam edersiniz, oturum açmak için kısıtlı hesabı kullanmazsınız).

  • Bir kullanıcı hesabı ekleyin.

  • Dosya sistemi için Windows Erişim Denetimi'ni kullanarak yeni kullanıcı hesabının sürücüye erişimini kısıtlayın. İşte ekran görüntülerini içeren iyi bir Nasıl Yapılır .

  • Ardından, yazılımı bu haklarla başlatın. Sen, örneğin, o ya da Process Explorer yapmak PsExec.exe kullanabilirsiniz burada nasıl . Zaten sahip değilseniz, bu ikisinden biri Microsoft web sitesinden indirmeniz gerekecektir.


4

Sandboxie kullanan bir çözüm öneriyorum . Ortamınız yok, bu yüzden Acrobat.exeerişiminin D:engellendiği bir sanal alanda çalışmayı test ettim . Acrobat'ta Dosya> Aç menüsünü açarken şunu alıyorum:

görüntü

Acrobat'ın disk etiketini bile bulamadığına dikkat edin D:, bu yüzden onu topal bir şekilde göstermeye zorlanır ve "Yerel Disk (D :)" üzerine tıkladığımda nasıl engellenir.

Kullandığım adımlar:

  • Yüklü Sandboxie
  • Korumalı Alan Denetimi'nde varsayılan korumalı alanı sağ tıklatın ve Korumalı Alan Ayarları'nı seçin
  • Kaynak Erişimi> Dosya Erişimi dalını açın ve Engellenen Erişim'i tıklatın
  • Program Ekle'yi tıklayın ve Acrobat'ı ekleyin (benimki C:\Program Files (x86)\Adobe\Acrobat DC\Acrobat\Acrobat.exe)
  • Disk ekle ve ekle'yi tıklayınD:
  • tıklayın Tamam
  • Sandboxie Control'de, Program Başlat> Zorunlu Klasörler dalını açın
  • Klasör Ekle'yi tıklayın
  • Acrobat'ın bulunduğu klasörü ekleyin (benimki C:\Program Files (x86)\Adobe\Acrobat DC\Acrobat)
  • Tamam'ı tıklayın

Şu andan itibaren, Acrobat klasöründen başlatılan tüm programların korumalı alan yürütmesi zorunludur ve özellikle Acrobat.exediske erişmesi engellenir D:. Acrobat korumalı alanın içinde yürütmede bazı zorluklar yaşıyorsa, diğer bazı korumalı alan kısıtlamalarını açmanız gerekebilir.

Bu, Acrobat'ın diskin uyandırılmasına neden olmak için kullandığı belirli Windows API çağrısını da engelleyip engellemeyeceğini bilmiyorum, ancak denemeye değer olabilir.

Sandboxie, tek bir varsayılan sanal alan için ücretsiz olarak önerdiğim harika ve çok yönlü bir üründür. Birden fazla korumalı alan için ödeme yazılımıdır, ancak yaşam süresi lisans fiyatı çok makul (ödeme yaptım). Örneğin, test ettiğim ürünleri bir sanal alana yüklerim ve ardından tek bir tıklamayla silebilirsiniz ve kaldırıcıya gerek kalmaz.


Başka bir yalıtım çözümü, Adobe Reader'ı bir Docker kabının içinde kullanmaktır . Docker kapları küçüktür ve sanal makineler gibi çalışır, ancak hazır kaplar Docker galerisinden indirildiğinden, makineyi oluşturmaya gerek yoktur.

Chocolatey'i paket yöneticisi olarak kullanabilirsiniz .

Chocolatey, Adobe Acrobat Reader DC 2018.011.20063'te Adobe Reader ile önceden hazırlanmış birçok pakete sahiptir .

Docker ile kaynaklarla ilgili olarak mutlak izolasyon mümkündür ve öte yandan klasörler gibi kaynakları tamamen yerel bir şekilde paylaşabilirsiniz.


2
@WackGet: Herhangi bir yorumunuz var mı?
harrymc

En azından kullanım durumunda, sürücünün hala dönmediğini söylüyor. Merak ediyorum, Sandboxie kaynakları donanım katmanında gizleme seçeneği sunuyor mu? Henüz yüklemedim.
Albin

@WackGet: Sandboxie'nin yapılandırma dosyalarında daha fazla ayar var. Ama önce: Adobe başlatıldığı anda veya yalnızca Dosya> Aç menüsü kullanılırken diskler uyanıyor mu?
harrymc

Yukarıdaki sorunun yanı sıra, Docker kullanarak başka bir hafif izolasyon seçeneği ekledim. Docker kapları küçüktür ve sanal makineler gibi çalışır, ancak kaplar hazır olduğundan ve Docker galerisinden indirildiğinden, oluşturmaya gerek kalmadan.
harrymc

İlginç bir seçim. Bir geliştirici / kurumsal çözüm olduğu için hangi Docker Uygulamasını kastediyorsunuz? Ne yazık ki baktığım docker ürünlerini kullanmak ücretsiz değil (sadece deneme yazılımı mümkün) ... ama belki de göz ardı ediyorum.
Albin
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.