Comment rendre Windows 7 totalement sensible à la casse par rapport au système de fichiers?

37

Je souhaite rendre Windows 7 sensible à la casse lorsqu'il lit / écrit quoi que ce soit sur le disque dur (le lecteur C ou tout autre lecteur NTFS).

J'ai trouvé une vidéo via Google qui dit de changer la clé de registre

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\DontPrettyPath

à une valeur de 1 ( source ).

J'ai également trouvé un élément de support Windows qui dit quelque chose sur la modification de la clé de registre

HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\obcaseinsensitive

cela me conduit à supposer qu'une valeur de 0 rend Windows sensible à la casse avec les systèmes de fichiers NTFS ( source ).

J'ai le sentiment que la deuxième solution est la solution, mais je ne suis pas sûr et je ne veux pas essayer sans être sûr.

Quelqu'un sait-il exactement quel est le bon moyen de rendre Windows 7 sensible à la casse lorsqu'il lit / écrit sur le lecteur C (et sur tout autre lecteur NTFS)?

trusktr
la source

Réponses:

25

Vous pouvez définir la HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\ dword:ObCaseInsensitivevaleur de registre sur 0comme suggéré par les autres auteurs. Créez un fichier nommé add.regavec le contenu suivant et exécutez-le.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\kernel]
"obcaseinsensitive"=dword:00000000

Ensuite, utilisez Cygwin pour travailler avec des noms de fichiers sensibles à la casse.

Pour ce faire, vous devez monter des systèmes de fichiers NTFS avec une posix=1option dans votre /etc/fstab, comme le suggère cet article . Voici un extrait de mon fstab:

none                    /cygdrive       cygdrive        binary,posix=1,user             0 0
C:                      /cygdrive/c     ntfs            binary,posix=1,user,auto        0 0
C:/Users                /home           ntfs            binary,posix=1,user,auto        0 0

Une fois que ce qui précède est fait, vous serez en mesure de traiter les noms de fichiers sensibles à la casse en utilisant bash, mc, gitetc.

Basse
la source
6
Vous devez redémarrer pour que cela prenne effet.
William
2
@ William: Je pense qu'il suffit de mettre fin à tous les processus et services Cygwin (comme Apache , sshd , etc.). Cela devrait être suffisant, car cygwin1.dllil sera déchargé de la RAM.
Basse
3
Je parle de HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\ dword:ObCaseInsensitive support.microsoft.com/en-us/kb/929110
William
16

Afin de créer réellement 2 fichiers portant le même nom mais une casse différente dans le même répertoire, vous devez installer Unix Services 3.5, mais cela ne fonctionne que sous Windows 32 bits. Ensuite, vous devez exécuter "C Shell" pour créer les fichiers. Vous ne pouvez pas créer les fichiers via l'explorateur. Une fois créé, l'explorateur ne joue pas bien avec les fichiers. Si vous allez renommer le second, le curseur passe au premier. En outre, la plupart des applications ne peuvent ouvrir que l’un des fichiers, car elles s’attendent à un système de fichiers ne respectant pas la casse. Si vous utilisez la version 64 bits, installez Cygwin et modifiez-le en respectant les majuscules.

J'essayais d'émuler un système de fichiers Linux sensible à la casse à des fins de débogage pendant le développement. Il semble que la meilleure approche consiste à utiliser VMWare avec une instance d'Ubuntu pour le développement.

utilisateur1491819
la source
"utiliser VMWare avec une instance d'Ubuntu pour le développement" => Ce n'est pas le cas avec les jeux
Jeu
16

Tous ces paramètres que vous pouvez trouver sur le Web sont pour NFS pas pour NTFS (notez la différence)!

NFS (Network File System) est un protocole de réseau.

Ainsi, changer la clé de registre HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\obcaseinsensitive ne changera rien de ce que vous voulez.

NTFS est sensible à la casse, mais l' API Windows ne l'est PAS , elle ne se souvient que de la casse du nom de fichier. Cela signifie que malgré que votre fichier soit affiché, AbC.TXTil est toujours accessible par abc.txtet aBc.TxT. Ceci est une limitation de Windows, pas de NTFS.

L'autre HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\DontPrettyPathdésactive fondamentalement la normalisation des noms de fichiers 8.3 hérités utilisés par DOS (qui sont en majuscule). Quand il est activé (par défaut) ABC.TXTsera affiché comme Abc.txt, mais sera toujours accessible par toutes les autres variations.

Pour être plus précis:

En réalité, cela dépend du logiciel qui accède au FS.

S'il utilise l'API WIN32 (ce que 99,9% du logiciel utilisent), il ne fera aucune distinction entre la casse et la casse. Tous les logiciels intégrés à Windows (tels qu'Explorer, une invite de commande, Internet Explorer, etc.) et tous les logiciels grand public utilisent WIN32 et respectent toujours la casse.

Le service NFS, Java et quelques autres sont POSIX et ils obéiront au paramètre de registre «obcaseinsensitive». Toutefois, le fait de désactiver cette option peut en réalité vous poser de plus gros problèmes, car ce logiciel peut créer des fichiers inaccessibles depuis Windows et les autres logiciels Win32.

venimus
la source
3
En fait, au niveau FS avant tout traitement supplémentaire, il est sensible à la casse, NTFS convertit tous les noms de fichiers en majuscules et lorsqu'un mot de passe en minuscule est entré, il les convertit en majuscules, puis recherche ledit fichier (voir support.microsoft.com/. kb / 103657 )
Jeff F.
Vous avez raison. J'ai juste essayé de l'expliquer plus simplement.
venimus
Alors, comment une version de Java basée sur Win32 parvient-elle à trouver "SHORT.class" ou "Short.class" s’ils se trouvent dans le même répertoire? Je ne peux pas croire qu'il n'y a AUCUN appel pour le faire.
Ira Baxter
Je pense que parce que Java est POSIX
venimus
2
Je suis à peu près sûr que le runtime Java standard (c.-à-d. D'Oracle) n'est pas sensible à la casse sous Windows. Si vous essayez de mettre SHORT.classet Short.classdans le même répertoire, cela ne fonctionnera pas. (Bien sûr, s'ils sont dans un fichier .jar, il n'y a pas de problème.)
Harry Johnston
4

Je pense que c'est ce que vous cherchez:

http://www.chilkatsoft.com/p/p_454.asp

Cette page recommande de définir HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\ dword:ObCaseInsensitivesur 0 pour le rendre sensible à la casse. Je pense que vous avez déjà trouvé cela, cependant, et cela ressemble à la manière standard de le faire (même la base de connaissances Microsoft que vous avez trouvée le suggère).

Il semble que vous deviez modifier les paramètres du noyau. Méfiez-vous des mises à jour si.

EDIT: Attention, certains programmes peuvent dépendre de l’insensibilité à la casse.

EDIT: Vous pourriez probablement utiliser une partition UDF. Ce système de fichiers est sensible à la casse et je pense que cela fonctionne sous Windows et Linux.

Voir ceci et cela .

beatgammit
la source
Pouvez-vous poster plus d'informations à partir de la page que vous créez un lien? Ne copiez pas le tout, mais copiez le paragraphe correspondant et résumez le reste.
ChrisF
Eh bien, toute la page est un paragraphe. Je vais faire un rapide montage si.
beatgammit
Merci tjameson. En ce qui concerne les programmes pouvant dépendre de l’insensibilité à la casse, il s’agit là d’un gros problème. Un programme peut rechercher "Windows" et ne pas le trouver car c'est vraiment "Windows" maintenant, non? Shoot, je suis un peu perdu à essayer de comprendre comment copier des choses de Linux à Windows, et je me suis retrouvé dans une situation où des dossiers de la même orthographe avec des majuscules différentes existent au même endroit.
trusktr
Eh bien, la seule chose à laquelle je peux penser, ce sont des conflits manuellement. Si vous copiez des fichiers, Windows devrait vous demander si vous souhaitez fusionner ou faire une copie, ou quelque chose du genre. Je ne me souviens plus (je suis moi-même un linux).
beatgammit
Selon cet article, cela ne fonctionne que pour les sous-systèmes non-Win32, donc ne s'applique pas à NTFS.
harrymc
4

Ce que Microsoft a à dire à propos de NTFS et du changement de sensibilité à la casse.

Il semble que vous ne devez pas modifier le noyau pour autoriser les recherches sensibles à la casse sur le réseau.

http://technet.microsoft.com/en-us/library/cc783185(WS.10).aspx

.

Configuration de la sensibilité à la casse pour les noms de fichiers et de dossiers

S'applique à: Windows Server 2003 R2

Pour configurer la sensibilité à la casse des noms de fichier et de dossier à l'aide de l'interface Windows Ouvrez Microsoft Services pour le système de fichiers réseau: cliquez sur Démarrer, pointez sur Programmes, sur Outils d'administration, puis cliquez sur Microsoft Services pour système de fichiers réseau.

Si nécessaire, connectez-vous à l'ordinateur que vous souhaitez gérer.

Cliquez avec le bouton droit sur Serveur pour NFS, puis cliquez sur Propriétés.

Cliquez sur l'onglet Gestion du nom de fichier.

Effectuez l'une des actions suivantes:

Pour activer les recherches de nom de fichier et de répertoire sensibles à la casse, cochez la case Activer les recherches sensibles à la casse.

Pour désactiver les recherches de noms de fichiers et de noms de répertoire sensibles à la casse, décochez la case Activer les recherches sensibles à la casse.

Cliquez sur Appliquer.

Important Ces modifications ne prendront effet qu'après le redémarrage de Server for NFS. Pour plus d'informations sur la procédure d'arrêt et de démarrage de Server for NFS, voir Démarrage et arrêt de Server for NFS. Vous devez également désactiver l'insensibilité à la casse du noyau Windows pour que Server for NFS prenne en charge les noms de fichiers sensibles à la casse. Vous pouvez désactiver l'insensibilité à la casse du noyau Windows en définissant la clé de registre suivante sur 0: HKLM \ SYSTEM \ CurrentControlSet \ Control \ Gestionnaire de session \ kernel DWORD «obcaseinsensitive»

Pour configurer la sensibilité à la casse des noms de fichier et de dossier à l'aide de la ligne de commande Ouvrez l'invite de commande.

Pour activer la sensibilité à la casse, tapez ce qui suit:

serveur nfsadmin [NomOrdinateur] config casesensitivelookups = yes

Pour désactiver la sensibilité à la casse et éventuellement spécifier la casse des noms de fichier renvoyés par Server for NFS, à l'invite de commande, tapez ce qui suit:

nfsadmin server [NomOrdinateur] config casesensitivelookups = no [ntfscase = {supérieur | plus bas | préserver}]

Argument> Nom de l'ordinateur = Le nom de l'ordinateur que vous souhaitez configurer.

Important Ces modifications ne prendront effet qu'après le redémarrage de Server for NFS. Pour plus d'informations sur la procédure d'arrêt et de démarrage de Server for NFS, voir Démarrage et arrêt de Server for NFS.

Remarque L'option ntfscase définit la sensibilité à la casse du système de fichiers NTFS. La sensibilité à la casse par défaut est preserve (préserver la casse). Pour afficher la syntaxe complète de cette commande, à l'invite de commande, tapez: nfsadmin server /?

.

Moab
la source
1
Je ne pense pas que cela permette d’avoir plusieurs fichiers avec le même nom, ce qu’il veut faire.
beatgammit
1
Ensuite, il devra faire le hack du registre.
Moab
S'applique à: Windows Server 2008 R2
Behrouz.M,
3

États de Microsoft ;

Dans NTFS, les noms préservent la casse, mais ne sont pas sensibles à la casse.
NTFS ne fait aucune distinction entre les noms de fichiers et les cas.

Autoriser le respect de la casse sous Windows permettrait aux programmes malveillants de créer des fichiers auxquels l’utilisateur ne peut accéder ni les supprimer, ce qui n’est pas autorisé pour une bonne raison.

Dans tous les cas, je suis tout à fait sûr que si vous parveniez à rendre NTFS sensible à la casse, Windows se bloquerait et la réinstallation constituerait la seule solution.

harrymc
la source
Vous avez également raison de dire que cela pose un problème de sécurité. "Par exemple, une version de edit.exe infectée par un programme malveillant de type cheval de Troie, nommée EDIT.EXE, pourrait être stockée dans le même répertoire que edit.exe. Si un utilisateur devait taper edit à l'invite de commande Windows , la version de cheval de Troie (EDIT.EXE) pourrait être exécutée à la place de la version standard ".. technet.microsoft.com/en-us/library/cc732389.aspx
Moab
Cela ne plantera probablement pas Windows à moins de renommer des fichiers / dossiers clés. Je suis à peu près sûr que Windows s'assure d'utiliser le cas correct. En fait, ils le recommandent même.
beatgammit
Hmm, c'est intéressant tjameson. Pouvez-vous fournir un lien vers cette recommandation?
trusktr
11
Si un logiciel malveillant obtient un accès en écriture sur votre disque, vous avez de gros problèmes, que votre système de fichiers soit sensible à la casse ou non. #redherring
Leopd
3
Le registre regorge de références à des fichiers système dont l'utilisation des cas est extrêmement incohérente. La sensibilité à la casse provoquerait une casse massive.
kreemoweet