In Windows gibt es keine systemeigene unterstützte Methode, um den Zugriff bestimmter Prozesse auf bestimmte Laufwerke zu blockieren. Dies widerspricht der aktuellen Vorgehensweise des Betriebssystems beim Zugriff auf Laufwerke.
Das Zugriffsrecht richtet sich nach den Rechten des angemeldeten Benutzers, der die Anwendung startet. Wenn der Softwareentwickler also beschließt, dass seine Software alle zugänglichen Laufwerke durchsuchen soll und Ihnen nicht die Möglichkeit gibt, diese zu deaktivieren, ist dies eine schlechte Programmierung, die Ihren speziellen Anwendungsfall nicht berücksichtigt. Es gibt jedoch einige Problemumgehungen.
Die einzige "sichere" Lösung ist 2, da die Hardwarevirtualisierungsebene (von der virtuellen Maschine) alle Anwendungen blockieren kann, um zu versuchen, vollständig auf die "echte Hardware" zuzugreifen. Ich hatte zwar nicht den Fall, dass Lösung 1 nicht funktioniert, aber theoretisch denke ich, dass es umgangen werden könnte.
Option "1" - Deaktivieren der Laufwerke auf einer "niedrigen Ebene" - Keine zusätzliche Software erforderlich
Option 1a
Sie können die Volumes auf einer niedrigeren Ebene deaktivieren, indem Sie die Laufwerke insgesamt deaktivieren. Dadurch werden jedoch alle Volumes auf dem Laufwerk deaktiviert. Sie können dies manuell tun, indem Sie mit der diskmgmt.mscrechten Maustaste auf das Laufwerk klicken und es als "offline" markieren.

Bei Bedarf sollte dies auch über ein Befehlszeilenskript möglich sein. Es würde auf ähnliche Weise angewendet wie Option 3a / b. Sie können das tun, beispielsweise über cmd , wie hier oder über Powershell, wie es beschrieben wird hier .
Option 1b
Sie können den Treiber des Laufwerks insgesamt deaktivieren. So machen Sie es manuell: Starten Sie diskmgmt.msc, klicken Sie mit der rechten Maustaste und wählen Sie "Optionen". Gehen Sie dann auf die Registerkarte "Treiber" und wählen Sie "Deaktivieren". Das Laufwerk "verschwindet" im Datenträgermanager und ist über das Betriebssystem nicht mehr zugänglich. Sofern die Software keine Maschinencodebefehle ausführt, um direkt mit der Hardware zu kommunizieren, sollte es für die Anwendung nicht möglich sein, auf die Laufwerke zuzugreifen. Zumindest soweit ich die Vor- und Nachteile von Betriebssystemen kenne.

Bei Bedarf sollte dies auch über ein Befehlszeilenskript möglich sein. Es würde auf ähnliche Weise wie Option 3a / b angewendet, beispielsweise unter Verwendung von Devcon.exe. Eine ausführliche Beschreibung finden Sie hier .
Option 2 - Verwenden einer virtuellen Umgebung (hauptsächlich mit Software von Drittanbietern)
Wenn die Anwendung in einer virtuellen Umgebung ausgeführt werden soll, gibt es zahlreiche Lösungen:
Abhängig von Ihrer Windows-Version (Win7 und höher erforderlich) und der Lizenz ("Professional" erforderlich, "Home" nicht erforderlich) können Sie Hyper-V verwenden, um eine virtuelle Umgebung ohne Software von Drittanbietern einzurichten.
Sie können eine Drittanbieter-Software verwenden, um ein virtuelles System wie VMplayer, Virtual Box usw. einzurichten. Es gibt viele Freeware- und Payware-Alternativen. Wenn Sie diese Lösung verwenden, benötigen Sie eine zweite Lizenz für Windows (oder Sie lassen sie unlizenziert, aber dann wird in der unteren rechten Ecke des Bildschirms eine Überlagerung angezeigt, die Sie auffordert, Windows zu registrieren). Dadurch wird definitiv verhindert, dass die Software auf das Laufwerk zugreift.
Sie könnten eine "Sandbox" -Anwendung verwenden. Dies hängt jedoch vom Grad der Virualisierung ab, den die Sandbox-Anwendung bietet. In einigen Fällen kann das Problem dadurch behoben werden. In anderen Fällen ist dies nicht der Fall. Sandboxie, zum Beispiel (derjenige, den Harrymc in seiner Antwort beschreibt ), löst das Problem nicht mit der Konfiguration, die Harrymc in seiner (ursprünglichen) Antwort beschreibt. Obwohl die Software den Zugriff möglicherweise blockiert, läuft das Laufwerk immer noch hoch. Eine Alternative wäre die Verwendung einer anderen Sandbox-Anwendung wie Cameyo usw.
Übrigens, hier ist ein guter Artikel über den Hauptunterschied zwischen den verschiedenen Virtualisierungssoftware, insbesondere den Unterschied zwischen einer "ganzen" virtuellen Maschine (wie Virtual Box) oder "halbvirtuellen" Anwendungen (wie Sandboxie).
Option 3 - Nur Volumes aushängen (Laufwerk "intakt" lassen) - Keine zusätzliche Software erforderlich, ABER in Ihrem Fall funktioniert dies möglicherweise nicht
Option 3a
Anstatt die Anwendung über ihre reguläre Verknüpfung zu starten, können Sie eine Batch-Datei mit dem Befehl schreiben, mit dem mountvolzuerst das nicht verwendete Volume abgemeldet, dann die Anwendung gestartet und das Volume erneut abgemeldet wird, sobald die Anwendung nicht mehr auf das Laufwerk zugreift. Das Ein- und Aushängen über die Befehlszeile wird hier und hier beschrieben . Sie können auch diskpartwie hier und hier beschrieben verwenden .
Option 3b
Alternativ können Sie das Laufwerk auch im Allgemeinen nicht bereitstellen und es über eine Batch-Datei bereitstellen, die das Laufwerk bereitstellt, das Sie bei Bedarf manuell starten. Nachdem Sie es verwendet haben, können Sie es mithilfe einer zweiten Batchdatei manuell aushängen. Sie können dies automatisieren, indem Sie Zugriffsanforderungen für das Dateisystem überwachen und das Laufwerk nach bestimmten Regeln ein- und aushängen, z. B. wenn bestimmte Anwendungen keinen Zugriff haben. Ich bin mir jedoch nicht sicher, ob Automatisierung den zusätzlichen Aufwand wert ist.
Option 4 - Beschränkung des Zugriffs auf einen Laufwerksbuchstaben (Volume). Einfach zu machen, aber es werden zwei kleine Tools von Microsoft benötigt - ABER es könnte in Ihrem Fall nicht funktionieren
Wenn Sie auf Software von Drittanbietern verzichten möchten, aber keine Probleme haben, zwei kleine Tools von Microsoft zu verwenden (sofern Sie diese nicht bereits verwenden). Ich bevorzuge diese Lösung, weil sie das Problem "durch die Wurzel" (Unterscheidung zwischen den Rechten des Benutzers und der Anwendung) verursacht und ziemlich einfach ist und keine "große" Software von Drittanbietern benötigt wird.
Grundsätzlich fügen Sie einen Benutzer hinzu, der keinen Zugriff auf das Laufwerk hat, und starten dann das Programm mit diesen eingeschränkten Rechten (Sie werden sich weiterhin als normaler Benutzer anmelden und das eingeschränkte Konto nicht zum Anmelden verwenden).
Fügen Sie ein Benutzerkonto hinzu.
Beschränken Sie den Zugriff des neuen Benutzerkontos auf das Laufwerk mithilfe der Windows-Zugriffssteuerung für das Dateisystem. Hier ist eine gute Anleitung mit Screenshots.
Starten Sie dann die Software mit diesen Rechten. Sie können zum Beispiel verwenden psexec.exe dass oder Process Explorer zu tun, hier ist , wie . Eines dieser beiden Programme müssen Sie von der Microsoft-Website herunterladen, sofern Sie es noch nicht haben.