Как сделать Windows 7 полностью чувствительной к регистру файловой системы?

Я хочу сделать 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 ответов

Решение

Вы можете установить 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 и т.п.

Все эти настройки, которые вы можете найти в Интернете, предназначены для 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.

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

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

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

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

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

,

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

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

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

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

Щелкните правой кнопкой мыши Сервер для 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 /?

,

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

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

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

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

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

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

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

Microsoft заявляет;

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

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

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

Другие вопросы по тегам