Sous Windows, il n'existe aucun moyen natif pris en charge pour empêcher certains processus d'accéder à certains lecteurs, ce qui va "à l'encontre de la nature actuelle" de la façon dont le système d'exploitation gère l'accès aux lecteurs.
Le droit d'accès est déterminé par les droits de l'utilisateur connecté qui démarre l'application. Donc, si le développeur du logiciel décide que son logiciel doit rechercher tous les lecteurs accessibles et ne vous donne pas la possibilité de désactiver cela ... eh bien, c'est une mauvaise programmation qui ne tient pas compte de votre cas d'utilisation particulier. Mais il existe quelques solutions.
La seule solution "sûre" est 2, car la couche de virtualisation matérielle (à partir de la machine virtuelle) peut bloquer toutes les applications pour tenter d'accéder complètement au "vrai matériel". Bien que je n'aie pas eu le cas où la solution 1 ne fonctionne pas, mais théoriquement, je pense qu'elle pourrait être contournée.
Option "1" - Désactivation des lecteurs à "bas niveau" - Aucun logiciel supplémentaire nécessaire
Option 1a
Il est possible de désactiver les volumes sur une couche inférieure en désactivant complètement les lecteurs, mais cela désactivera tous les volumes sur le lecteur. Manuellement, vous pouvez le faire en démarrant diskmgmt.msc
, puis en cliquant avec le bouton droit sur le lecteur et en le marquant "hors ligne".
Si nécessaire, vous devriez également pouvoir le faire en utilisant un script de ligne de commande. Elle serait appliquée de la même manière que l'option 3a / b. Vous pouvez le faire, par exemple, via cmd comme décrit ici ou via PowerShell, comme il est décrit ici .
Option 1b
Vous pouvez désactiver complètement le pilote du lecteur. Pour le faire manuellement: démarrez diskmgmt.msc
, puis faites un clic droit, choisissez "options". Allez ensuite dans l'onglet "Pilote" et sélectionnez "Désactiver". Le lecteur "disparaîtra" dans le gestionnaire de disques et ne sera plus accessible via le système d'exploitation. À moins que le logiciel n'exécute pas de commandes de code machine pour communiquer directement avec le matériel, l'application ne devrait pas avoir accès aux lecteurs. Au moins en ce qui concerne ma connaissance des tenants et aboutissants des systèmes d'exploitation.
Si nécessaire, vous devriez également pouvoir le faire en utilisant un script de ligne de commande. Elle serait appliquée d'une manière similaire à l'option 3a / b en utilisant, par exemple Devcon.exe
,. Vous pouvez trouver une description détaillée ici .
Option 2 - Utilisation d'un environnement virtuel (principalement avec un logiciel tiers)
Si l'exécution de l'application dans un environnement virtuel est une option, il existe de nombreuses solutions:
en fonction de votre version de Windows (Win7 et supérieur requis) et de la licence ("Professionnel" requis, "Accueil" ne suffira pas), vous pouvez simplement utiliser Hyper-V pour configurer un environnement virtuel sans aucun logiciel tiers.
vous pouvez utiliser un logiciel tiers pour configurer un système virtuel comme VMplayer, Virtual Box, etc. Il existe de nombreuses alternatives gratuites et payantes. En utilisant cette solution, vous aurez besoin d'une deuxième licence pour Windows (ou vous la laissez sans licence, mais vous obtiendrez alors une superposition dans le coin inférieur droit de l'écran qui vous dira d'enregistrer Windows). Cela empêchera définitivement le logiciel d'accéder au lecteur.
vous pouvez utiliser une application "sandbox". Mais cela dépendra du niveau de virualisation qu'offre l'application sandbox. Dans certains cas, cela peut résoudre le problème; dans d'autres cas, ce n'est pas le cas. Sandboxie, par exemple (celui décrit par harrymc dans sa réponse ), ne résout pas le problème avec la configuration harrymc décrite dans sa réponse (originale). Bien que le logiciel puisse bloquer l'accès, le lecteur restera toujours en place. Une alternative serait d'utiliser une autre application sandbox comme Cameyo, etc.
Soit dit en passant, voici un bon article pour la principale différence entre les différents logiciels de virtualisation, en particulier la différence entre une machine virtuelle «entière» (comme Virtual Box) ou des applications «semi virtuelles» (comme Sandboxie).
Option 3 - Démonter uniquement les volumes (en laissant le lecteur «intact») - Aucun logiciel supplémentaire requis, MAIS cela pourrait ne pas fonctionner dans votre cas
Option 3a
Au lieu de démarrer l'application via son raccourci normal, vous pouvez écrire un fichier de commandes à l'aide de la commande mountvol
qui démonte d'abord le volume inutilisé, puis démarre l'application, puis remonte le volume une fois que l'application n'accède plus au lecteur. Le processus de montage / démontage via la ligne de commande est décrit ici et ici . Vous pouvez également utiliser diskpart
comme décrit ici et ici .
Option 3b
Alternativement, vous pouvez simplement laisser le lecteur non monté en général et le monter via un fichier de commandes qui monte le lecteur que vous démarrez manuellement en cas de besoin. Une fois que vous avez fini de l'utiliser, vous pouvez le démonter manuellement à l'aide d'un deuxième fichier de commandes. Vous pouvez automatiser cela en surveillant les demandes d'accès au système de fichiers et monter / démonter le lecteur comme requis en suivant certaines règles, par exemple que certaines applications n'auront pas accès. Mais je ne suis pas sûr que l'automatisation vaut l'effort supplémentaire impliqué.
Option 4 - Restreindre l'accès à une lettre de lecteur (volume). Simple à faire, mais deux petits outils de Microsoft nécessaires - MAIS cela pourrait ne pas fonctionner dans votre cas
Si vous voulez le faire sans logiciel tiers mais que cela ne vous dérange pas d'utiliser deux petits outils de Microsoft (si vous ne l'utilisez pas déjà). Je préfère cette solution car elle pose le problème "par la racine" (différenciation entre les droits de l'utilisateur et de l'application) et elle est assez simple et aucun "gros" logiciel tiers n'est nécessaire.
Fondamentalement, vous ajoutez un utilisateur sans accès au lecteur, puis vous démarrez le programme avec ces droits limités (vous vous connecterez toujours en tant qu'utilisateur normal, vous n'utiliserez pas le compte restreint pour vous connecter).
Ajoutez un compte utilisateur.
Limitez l'accès du nouveau compte d'utilisateur au lecteur à l'aide du contrôle d'accès Windows pour le système de fichiers. Voici un bon guide pratique comprenant des captures d'écran.
Ensuite, démarrez le logiciel avec ces droits. Vous pouvez, par exemple, utiliser PsExec.exe pour cela ou Process Explorer, voici comment procéder . Si vous ne les avez pas déjà, vous devrez les télécharger sur le site Web de Microsoft.