Como você torna o Windows 7 totalmente sensível a maiúsculas e minúsculas em relação ao sistema de arquivos?

36

Eu quero tornar o Windows 7 sensível a maiúsculas e minúsculas quando ler / gravar qualquer coisa no disco rígido (a unidade C ou qualquer outra unidade NTFS).

Eu encontrei um vídeo via google que diz para mudar a chave do registro

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

com um valor de 1 ( source ).

Também encontrei um item de suporte do Windows que diz algo sobre como modificar a chave do Registro

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

que me leva a supor que colocar um valor de 0 tornará o Windows sensível a maiúsculas e minúsculas com sistemas de arquivos NTFS ( origem ).

Tenho a sensação de que a segunda solução é a resposta, mas não tenho certeza e não quero tentar sem ter certeza.

Alguém sabe com certeza qual é a maneira correta de tornar o Windows 7 sensível a maiúsculas e minúsculas quando lê / grava na unidade C (e em qualquer outra unidade NTFS)?

    
por trusktr 03.04.2011 / 20:19

6 respostas

22

Você pode definir o valor do registro HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\ dword:ObCaseInsensitive como 0 , como outros autores sugeriram. Crie um arquivo chamado add.reg com o seguinte conteúdo e execute-o.

Windows Registry Editor Version 5.00

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

Em seguida, use Cygwin para trabalhar com nomes de arquivos que diferenciam maiúsculas de minúsculas.

Para fazer isso, você precisa montar sistemas de arquivos NTFS com a opção posix=1 no seu /etc/fstab , como este artigo sugere. Aqui está um trecho do meu 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

Quando o processo acima estiver concluído, você poderá lidar com nomes de arquivos com distinção entre maiúsculas e minúsculas usando bash , mc , git etc.

    
por 20.11.2014 / 12:26
16

Para realmente criar 2 arquivos com o mesmo nome, mas caso diferente no mesmo diretório, você precisa instalar o Unix Services 3.5, mas isso só funciona no Windows de 32 bits. Então você precisa rodar o "C Shell" para criar os arquivos. Você não pode criar os arquivos através do explorador. Uma vez criado, o explorador não joga bem com os arquivos. Se você for renomear o segundo, o cursor salta para o primeiro. Além disso, a maioria dos aplicativos só pode abrir um dos arquivos, pois eles esperam um sistema de arquivos que não diferencia maiúsculas de minúsculas. Se você estiver em 64 bits, instale o Cygwin e altere-o para maiúsculas e minúsculas.

Eu estava tentando emular um sistema de arquivos com distinção entre maiúsculas e minúsculas para fins de depuração durante o desenvolvimento. Parece que a melhor abordagem é usar o VMWare com uma instância do Ubuntu para desenvolvimento.

    
por 15.11.2012 / 00:33
15

Todas essas configurações que você pode encontrar na web são para NFS e não para NTFS (observe a diferença)!

O NFS (Network File System) é um protocolo de rede.

Assim, alterar a chave do registro HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\obcaseinsensitive NÃO alterará o que você deseja.

O NTFS diferencia maiúsculas de minúsculas , mas a API do Windows NÃO é , apenas lembra o caso do nome do arquivo. Isso significa que, apesar de seu arquivo ser exibido como AbC.TXT , ele ainda pode ser acessado por abc.txt e aBc.TxT . Esta é uma limitação do Windows, não do NTFS.

O outro HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\DontPrettyPath basicamente desativa a normalização de nomes de arquivos legados 8.3 usados pelo DOS (que são todos em maiúsculas). Quando estiver ativado (padrão), ABC.TXT será exibido como Abc.txt , mas ainda estará acessível por todas as outras variações.

Para ser mais preciso:

Na verdade, depende do software que acessa o FS.

Se usar a API do WIN32 (que 99,9% do software faz), não fará distinção entre maiúsculas e minúsculas. Todos os softwares incorporados no Windows (como o Explorer, o prompt de comando, o Internet Explorer e etc.) e todos os softwares de consumo que estão por aí usam o WIN32 e sempre diferenciam maiúsculas de minúsculas.

Serviço NFS, Java e alguns outros são POSIX e eles obedecerão à configuração de registro 'obcaseinsensitive'. No entanto, desativar a opção pode realmente causar problemas maiores, pois esse software pode criar arquivos que não são acessíveis pelo próprio Windows e por outros softwares Win32.

    
por 30.05.2012 / 18:43
4

Acho que é isso que você está procurando:

link

Esta página recomenda definir HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\ dword:ObCaseInsensitive para 0 para diferenciar maiúsculas de minúsculas. Eu acho que você já achou isso, e isso parece a maneira padrão de fazê-lo (mesmo o KB da Microsoft que você encontrou sugere).

Parece que você precisa alterar as configurações do kernel. Cuidado com as atualizações embora.

EDIT: Cuidado, porém, alguns programas podem depender de insensibilidade a maiúsculas e minúsculas.

EDIT: Você provavelmente poderia usar uma partição UDF. Esse sistema de arquivos faz distinção entre maiúsculas e minúsculas e acho que funciona no Windows e no Linux.

Veja este e this .

    
por 03.04.2011 / 20:21
4

O que a Microsoft tem a dizer sobre o NTFS e a alteração da diferenciação de maiúsculas e minúsculas.

Parece que você não precisa alterar o kernel para permitir pesquisas com distinção entre maiúsculas e minúsculas na rede.

link

.

Configurando a diferenciação de maiúsculas e minúsculas para nomes de arquivos e pastas

Applies To: Windows Server 2003 R2

To configure case sensitivity for file and folder names using the Windows interface Open Microsoft Services for Network File System: click Start, point to Programs, point to Administrative Tools, and then click Microsoft Services for Network File System.

If necessary, connect to the computer you want to manage.

Right-click Server for NFS, and then click Properties.

Click the Filename Handling tab.

Do one of the following:

To enable case-sensitive file and directory name lookups, select the Enable case sensitive lookups check box.

To disable case-sensitive file and directory name lookups, clear the Enable case sensitive lookups check box.

Click Apply.

Important These changes will not take effect until Server for NFS is restarted. For information about how to stop and start Server for NFS, see Starting and stopping Server for NFS. You also need to disable Windows kernel case-insensitivity in order for Server for NFS to support case-sensitive file names. You can disable Windows kernel case-insensitivity by clearing the following registry key to 0: HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel DWORD “obcaseinsensitive”

Para configurar a diferenciação de maiúsculas e minúsculas para nomes de arquivos e pastas usando a linha de comando Abra o prompt de comando.

To enable case sensitivity, type the following:

nfsadmin server [ ComputerName ] config casesensitivelookups=yes

To disable case sensitivity and optionally specify the case of file names returned by Server for NFS, at a command prompt, type the following:

nfsadmin server [ ComputerName ] config casesensitivelookups=no [ntfscase={upper | lower | preserve}]

Argument > Computer Name = The name of the computer you want to configure.

Important These changes will not take effect until Server for NFS is restarted. For information about how to stop and start Server for NFS, see Starting and stopping Server for NFS.

Note The ntfscase option sets the case sensitivity for the NTFS file system. The default case sensitivity is preserve (preserve case). To view the complete syntax for this command, at a command prompt, type: nfsadmin server /?

.

    
por 03.04.2011 / 22:27
3

estados ;

da Microsoft

In NTFS, names preserve case, but are not case sensitive.
NTFS makes no distinction of filenames based on case.

Permitir a diferenciação de maiúsculas e minúsculas no Windows permitiria que malwares criassem arquivos que o usuário não pode acessar ou excluir, por isso não é permitido por um bom motivo.

De qualquer forma, tenho certeza de que, se você conseguir tornar o NTFS sensível a maiúsculas e minúsculas, O Windows irá travar e a reinstalação será a única solução.

    
por 03.04.2011 / 20:48