web-dev-qa-db-ja.com

ファイルシステムに関してWindows 7で大文字と小文字を完全に区別するにはどうすればよいですか?

Windows 7がハードドライブ(Cドライブ、またはその他のNTFSドライブ)で何かを読み書きするときに、大文字と小文字を区別します。

レジストリキーを変更するように言っているグーグル経由のビデオを見つけました

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

値1( source )に。

レジストリキーの変更について何かを述べているWindowsサポートアイテムも見つけました

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

そのため、値を0にすると、WindowsはNTFSファイルシステム( source )で大文字と小文字を区別するようになります。

2つ目の解決策が答えだと感じていますが、確信が持てず、確信が持てずに試したくありません。

Windows 7がCドライブ(およびその他のNTFSドライブ)に対して読み取り/書き込みを行うときに、Windows 7で大文字と小文字を区別するための正しい方法は何か知っていますか?

39
trusktr

他の作成者が示唆するように、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を使用して、大文字と小文字を区別するファイル名を操作します。

そのためには、_ この記事 が示すように、posix=1/etc/fstabオプションを指定してNTFSファイルシステムをマウントする必要があります。これが私の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

上記が完了すると、bashmcgitなどを使用して、大文字と小文字が区別されるファイル名を処理できるようになります。

27
Bass

Webで見つけることができるこれらすべての設定は[〜#〜] nfs [〜#〜]のためのものではありません[〜#〜] ntfs [〜#〜]のためではありません(違いに注意してください)!

NFS(Network File System)はネットワークプロトコルです。

したがって、レジストリキーHKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\obcaseinsensitiveWILL NOTを変更すると、必要な変更がすべて行われます。

NTFSでは大文字と小文字が区別されますWindows APIでは区別されません、ファイル名の大文字と小文字のみが記憶されます。これは、ファイルがAbC.TXTとして表示されているにもかかわらず、abc.txtおよびaBc.TxTから引き続きアクセスできることを意味します。これはWindowsの制限であり、NTFSではありません。

もう1つのHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\DontPrettyPathは、基本的にDOSで使用されるレガシー8.3ファイル名(すべて大文字)の正規化をオフにします。オンにすると(デフォルト)、ABC.TXTAbc.txtとして表示されますが、他のすべてのバリエーションからは引き続きアクセスできます。

より正確に:

実際には、FSにアクセスするソフトウェアによって異なります。

WIN32 API(ソフトウェアの99.9%が使用)を使用している場合、何をしても大文字と小文字が区別されません。 Windowsのすべての組み込みソフトウェア(エクスプローラー、コマンドプロンプト、Internet Explorerなど)およびそこにあるすべてのコンシューマーソフトウェアはWIN32を使用し、常に大文字と小文字を区別しません。

NFSサービス、Javaおよびその他の一部はPOSIXであり、「obcaseinsensitive」レジストリ設定に従います。ただし、このソフトウェアを使用すると、 Windows自体と他のWin32ソフトウェアからアクセスできます。

16
venimus

同じディレクトリに同じ名前で大文字と小文字が異なる2つのファイルを実際に作成するには、Unix Services 3.5をインストールする必要がありますが、これは32ビットWindowsでのみ機能します。次に、「Cシェル」を実行してファイルを作成する必要があります。エクスプローラからファイルを作成することはできません。作成された後、エクスプローラーはファイルでニースを再生しません。 2番目の名前を変更すると、カーソルは最初の名前にジャンプします。また、ほとんどのアプリケーションは、大文字と小文字を区別しないファイルシステムを想定しているため、ファイルの1つしか開くことができません。 64ビットを使用している場合は、Cygwinをインストールし、大文字と小文字を区別するように変更します。

開発中のデバッグ目的で、Linuxの大文字と小文字を区別するファイルシステムをエミュレートしようとしていました。 VMWareをUbuntuのインスタンスと共に使用して開発するのが、より良いアプローチのようです。

16
user1491819

これはあなたが探しているものだと思います:

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

このページでは設定HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\ dword:ObCaseInsensitiveを0にすると、大文字と小文字が区別されます。私はあなたがすでにこれを見つけたと思います、そしてこれはそれを行うための標準的な方法のように見えます(あなたが見つけたMicrosoft KBでもそれを示唆しています)。

カーネル設定を変更する必要があるようです。ただし、更新には注意してください。

編集:ただし、一部のプログラムは大文字と小文字を区別しないことに依存する場合があります。

編集:おそらくUDFパーティションを使用できます。このファイルシステムは大文字と小文字を区別し、WindowsとLinuxの両方で動作すると思います。

this および this を参照してください。

4
beatgammit

NTFSと大文字小文字の区別の変更についてMicrosoftが言わなければならないこと。

ネットワークで大文字と小文字を区別するルックアップを許可するためにカーネルを変更する必要がないようです。

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

ファイル名とフォルダー名の大文字と小文字の区別の構成

適用対象:Windows Server 2003 R2

Windowsインターフェイスを使用してファイル名とフォルダ名の大文字と小文字の区別を構成するにはネットワークファイルシステムのMicrosoftサービスを開きます。[スタート]ボタンをクリックし、[プログラム]、[管理ツール]の順にポイントして、[ネットワークファイルシステムのMicrosoftサービス]をクリックします。

必要に応じて、管理するコンピューターに接続します。

[NFSサーバー]を右クリックし、[プロパティ]をクリックします。

[ファイル名の処理]タブをクリックします。

次のいずれかを実行します。

大文字と小文字を区別するファイルとディレクトリ名の検索を有効にするには、[大文字と小文字を区別する検索を有効にする]チェックボックスをオンにします。

大文字と小文字を区別するファイルとディレクトリ名の検索を無効にするには、[大文字と小文字を区別する検索を有効にする]チェックボックスをオフにします。

「適用」をクリックします。

重要これらの変更は、NFSサーバーを再起動するまで有効になりません。 NFSサーバーを停止および起動する方法については、「NFSサーバーを起動および停止する」を参照してください。 NFSサーバーが大文字と小文字を区別するファイル名をサポートするためには、Windowsカーネルの大文字と小文字を区別しないようにする必要もあります。 Windowsカーネルの大文字と小文字を区別しないようにするには、次のレジストリキーを0にクリアします。HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel DWORD“ obcaseinsensitive”

コマンドラインを使用してファイル名とフォルダー名の大文字と小文字の区別を構成するにはコマンドプロンプトを開きます。

大文字と小文字の区別を有効にするには、次のように入力します。

nfsadmin server [ComputerName] config casesensitivelookups = yes

大文字と小文字の区別を無効にし、オプションでNFSサーバーから返されるファイル名の大文字と小文字を指定するには、コマンドプロンプトで次のように入力します。

nfsadminサーバー[ComputerName]構成casesensitivelookups = no [ntfscase = {upper |下|保存}]

引数>コンピューター名=構成するコンピューターの名前。

重要これらの変更は、NFSサーバーを再起動するまで有効になりません。 NFSサーバーを停止および起動する方法については、「NFSサーバーを起動および停止する」を参照してください。

注ntfscaseオプションは、NTFSファイルシステムの大文字と小文字の区別を設定します。デフォルトの大文字と小文字の区別は、保持(大文字と小文字の区別)です。このコマンドの完全な構文を表示するには、コマンドプロンプトで次のように入力します。nfsadminserver /?

4
Moab

Microsoft states ;

NTFSでは、名前では大文字と小文字が保持されますが、大文字と小文字は区別されません。
NTFSは、大文字と小文字を区別してファイル名を区別しません。

Windowsで大文字と小文字の区別を許可すると、マルウェアがユーザーがアクセスまたは削除できないファイルを作成できるようになるため、正当な理由で許可されません。

いずれにせよ、NTFSで大文字と小文字を区別した場合、Windowsがクラッシュし、再インストールが唯一の解決策になると確信しています。

3
harrymc