36

Я хочу сделать Windows 7 чувствительной к регистру, когда она читает / записывает что-либо на жесткий диск (диск C или любой другой диск NTFS).

Я нашел видео через Google, который говорит, чтобы изменить раздел реестра

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

до значения 1 (источник).

Я также нашел пункт поддержки Windows, который говорит что-то об изменении ключа реестра

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

это заставляет меня предположить, что установка значения 0 сделает Windows чувствительной к регистру файловых систем NTFS (источник).

У меня есть чувство, что второе решение - это ответ, но я не уверен, и я не хочу пробовать это, не будучи уверенным.

Кто-нибудь знает наверняка, как правильно сделать Windows 7 чувствительной к регистру при чтении / записи на диск C (и любой другой диск NTFS)?

6 ответов6

23

Вы можете установить значение реестра HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\ dword:ObCaseInsensitive в 0 как предложили другие авторы. Создайте файл с именем add.reg со следующим содержимым и запустите его.

Windows Registry Editor Version 5.00

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

Затем используйте Cygwin для работы с именами файлов с учетом регистра.

Для этого вам нужно смонтировать файловые системы NTFS с posix=1 в вашем /etc/fstab , как предлагает эта статья . Вот фрагмент из моего 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

Как только вышеперечисленное будет сделано, вы сможете работать с именами файлов с учетом регистра, используя bash , mc , git и т.д.

16

Все эти настройки, которые вы можете найти в Интернете, предназначены для NFS, а не для NTFS (обратите внимание на разницу)!

NFS (сетевая файловая система) - это сетевой протокол.

Таким образом, изменение ключа реестра HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\obcaseinsensitive НЕ изменит ничего, что вы хотите.

NTFS чувствительна к регистру, но Windows API НЕ, она запоминает только регистр имени файла. Это означает, что, несмотря на то, что ваш файл отображается как AbC.TXT он по-прежнему доступен для abc.txt и aBc.TxT . Это ограничение Windows, а не NTFS.

Другой HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\DontPrettyPath основном отключает нормализацию устаревших имен файлов 8.3, используемых DOS (все они заглавными буквами). Когда он включен (по умолчанию), ABC.TXT будет отображаться как Abc.txt , но по-прежнему будет доступен для всех других вариантов.

Чтобы быть более точным:

На самом деле это зависит от программного обеспечения, которое обращается к ФС.

Если он использует WIN32 API (что делает 99,9% программного обеспечения), он будет нечувствителен к регистру, что бы вы ни делали. Все встроенное программное обеспечение в Windows (например, Explorer, командная строка, Internet Explorer и т.д.) И все потребительские программы используют WIN32 и всегда чувствительны к регистру.

Служба NFS, Java и некоторые другие являются POSIX, и они будут подчиняться «нечувствительному к регистру» параметру реестра. Однако отключение этой опции может на самом деле вызвать большие проблемы, потому что это программное обеспечение может создавать файлы, недоступные из самой Windows и другого программного обеспечения Win32.

16

Чтобы фактически создать 2 файла с одним и тем же именем, но с другим регистром в одном и том же каталоге, вам нужно установить Unix Services 3.5, но это работает только в 32-битной Windows. Затем вам нужно запустить "C Shell" для создания файлов. Вы не можете создавать файлы через проводник. После того, как созданный, проводник не играет хорошо с файлами. Если вы идете, чтобы переименовать второй, курсор переходит на первый. Кроме того, большинство приложений могут открывать только один из файлов, так как они ожидают нечувствительную к регистру файловую систему. Если вы используете 64-битную версию, установите Cygwin и измените его на регистр.

Я пытался эмулировать чувствительную к регистру файловую систему Linux для целей отладки во время разработки. Кажется, лучший подход - использовать VMWare с экземпляром Ubuntu для разработки.

4

Я думаю, это то, что вы ищете:

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

На этой странице рекомендуется установить для HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\ dword:ObCaseInsensitive значение 0, чтобы сделать его чувствительным к регистру. Я думаю, что вы уже нашли это, и это похоже на стандартный способ сделать это (даже Microsoft KB, которую вы нашли, предлагает это).

Похоже, вы должны изменить настройки ядра. Остерегайтесь обновлений, хотя.

РЕДАКТИРОВАТЬ: Остерегайтесь, хотя, некоторые программы могут зависеть от нечувствительности к регистру.

РЕДАКТИРОВАТЬ: Возможно, вы могли бы использовать раздел UDF. Эта файловая система чувствительна к регистру, и я думаю, что она работает как в Windows, так и в Linux.

Смотрите это и это.

4

Что Microsoft должна сказать о NTFS и изменении чувствительности к регистру.

Похоже, вам не нужно менять ядро, чтобы разрешить поиск с учетом регистра в сети.

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

,

Настройка чувствительности к регистру для имен файлов и папок

Применяется к: Windows Server 2003 R2

Чтобы настроить чувствительность к регистру имен файлов и папок с помощью интерфейса Windows Откройте Microsoft Services для сетевой файловой системы: нажмите «Пуск», выберите «Программы», «Администрирование», а затем нажмите «Microsoft Services для сетевой файловой системы».

При необходимости подключитесь к компьютеру, которым хотите управлять.

Щелкните правой кнопкой мыши Сервер для NFS и выберите Свойства.

Нажмите вкладку Обработка имени файла.

Выполните одно из следующих действий:

Чтобы включить поиск файлов и каталогов с учетом регистра, установите флажок Включить поиск с учетом регистра.

Чтобы отключить поиск с учетом регистра файлов и имен каталогов, снимите флажок Включить поиск с учетом регистра.

Нажмите Применить.

Важно! Эти изменения не вступят в силу до перезапуска сервера для NFS. Сведения о том, как остановить и запустить сервер для NFS, см. В разделе Запуск и остановка сервера для NFS. Вам также нужно отключить нечувствительность к регистру ядра Windows, чтобы сервер для NFS поддерживал имена файлов с учетом регистра. Вы можете отключить нечувствительность к регистру ядра Windows, очистив следующий раздел реестра в 0: HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel DWORD «obcaseinsensitive»

Чтобы настроить чувствительность к регистру имен файлов и папок с помощью командной строки Откройте командную строку.

Чтобы включить чувствительность к регистру, введите следующее:

nfsadmin server [ComputerName] config casesensitivelookups = yes

Чтобы отключить чувствительность к регистру и при необходимости указать регистр имен файлов, возвращаемых сервером для NFS, введите в командной строке следующую команду:

nfsadmin server [ComputerName] config casesensitivelookups = no [ntfscase = {upper | ниже | сохранение}]

Аргумент> Имя компьютера = Имя компьютера, который вы хотите настроить.

Важно! Эти изменения не вступят в силу до перезапуска сервера для NFS. Сведения о том, как остановить и запустить сервер для NFS, см. В разделе Запуск и остановка сервера для NFS.

Примечание. Параметр ntfscase устанавливает чувствительность к регистру файловой системы NTFS. По умолчанию чувствительность к регистру - сохранить (сохранить регистр). Чтобы просмотреть полный синтаксис этой команды, введите в командной строке: nfsadmin server /?

,

3

Microsoft заявляет ;

В NTFS имена сохраняют регистр, но не чувствительны к регистру.
NTFS не делает различий в именах файлов в зависимости от регистра.

Разрешение чувствительности к регистру в Windows позволило бы вредоносным программам создавать файлы, к которым пользователь не может получить доступ или удалить их, поэтому это недопустимо по уважительной причине.

В любом случае, я совершенно уверен, что если вам удастся настроить NTFS с учетом регистра, Windows будет аварийно завершать работу, и переустановка будет единственным решением.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .