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


37

Windows 7がハードドライブ(Cドライブ、またはその他のNTFSドライブ)の読み取り/書き込みを行うときに、大文字と小文字を区別するようにします。

レジストリキーを変更するように言うビデオをGoogle経由で見つけました

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の正しい方法を確実に知っている人はいますか?

回答:


25

他の著者が提案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など


6
これを有効にするには再起動する必要があります。
ウィリアム

2
@William:すべてのCygwinプロセスとサービス(Apachesshdなど)を終了するだけでよいと思います。それは、十分なはずcygwin1.dllRAMからアンロードされます。
ベース

3
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\ dword:ObCaseInsensitive support.microsoft.com/en-us/kb/929110
ウィリアム

16

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

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


「開発のためのUbuntuのインスタンスで使用するVMWareの」=>ないゲームの場合
ПетърПетров

16

Webで見つけることができるこれらの設定はすべて、NTFS用ではなくNFS用です(違いに注意してください)!

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

このように、レジストリキーを変更しHKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\obcaseinsensitive ないものとしますあなたが欲しいものを変更します。

NTFSは大文字と小文字を区別しますが、Windows API は大文字と小文字を区別しません。あなたのファイルにもかかわらず、表示されていることをこの平均AbC.TXTそれはまだでアクセス可能であるabc.txtaBc.TxT。これはWindowsの制限であり、NTFSではありません。

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

より正確にするには:

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

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

NFSサービス、Java、およびその他のいくつかはPOSIXであり、「obcaseinsensitive」レジストリ設定に従います。ただし、このソフトウェアはWindows自体や他のWin32ソフトウェアからアクセスできないファイルを作成する可能性があるため、オプションをオフにすると実際に大きな問題が発生する可能性があります。


3
実際には、追加処理前のFSレベルでは大文字と小文字が区別されますが、NTFSはすべてのファイル名をすべて大文字に変換し、小文字の文字が入力されると大文字に変換してからそのファイルを探します(support.microsoft.com/を参照してくださいkb / 103657
ジェフF.

あなたが正しいです。私はそれをもっと簡単に説明しようとしました。
-venimus

それでは、JavaのWin32ベースのバージョンは、同じディレクトリにある場合に「SHORT.class」対「Short.class」を見つけるのにどのように成功しますか?私はこれを行うための呼び出しがないとは信じられません。
アイラバクスター14年

JavaはPOSIXですので、私は考える
venimus

2
Windowsでは、標準のJavaランタイム(Oracle製)で大文字と小文字が区別されないことを確信しています。あなたが入れてみました場合SHORT.classShort.class同じディレクトリに、それは動作しません。(もちろん、.jarファイル内にある場合は問題ありません。)
ハリージョンストン

4

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

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

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

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

編集:しかし、注意してください、いくつかのプログラムは大文字と小文字を区別しないことに依存する可能性があります。

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

これこれを参照してください。


リンク先のページから詳細を投稿してください。全部をコピーするのではなく、関連する段落をコピーして残りを要約することができます。
ChrisF

まあ、ページ全体は段落です。ただし、簡単に編集します。
beatgammit

tjamesonに感謝します。大文字と小文字を区別しないことに依存する可能性のあるプログラムに関しては、これは確かに大きな問題です。プログラムは「WINDOWS」を探しても、実際には「Windows」なので、見つけられないかもしれませんよね?シュート、物事をLinuxからWindowsにコピーする方法を見つけようとして途方に暮れていて、同じスペルの異なる大文字のフォルダーが1つの場所に存在するという状況に陥りました。
trusktr

まあ、私が考えることができる唯一のことは、手動で競合することです。ファイルをコピーすると、Windowsは、マージするかコピーを作成するかなどを尋ねるはずです。思い出せません(私はLinuxの人間です)。
beatgammit

この記事によると、これは非Win32サブシステムでのみ機能するため、NTFSには適用されません。
ハリーマック

4

NTFSおよび大文字と小文字の区別の変更に関するマイクロソフトの意見。

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

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

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

適用対象:Windows Server 2003 R2

Windowsインターフェイスを使用してファイル名とフォルダー名の大文字と小文字の区別を構成するにはネットワークファイルシステム用の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] config casesensitivelookups = no [ntfscase = {upper | 低い| 保存する}]

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

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

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


1
これにより、同じ名前の複数のファイルを作成できるようになるとは思いません。これが彼のやりたいことです。
-beatgammit

1
その後、彼はレジストリのハッキングを行う必要があります。
モアブ

適用対象:Windows Server 2008 R2
Behrouz.M

3

マイクロソフトは述べています。

NTFSでは、名前は大文字と小文字を区別しますが、大文字と小文字は区別しません。
NTFSは、大文字と小文字に基づいてファイル名を区別しません。

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

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


また、セキュリティ上の問題が発生する場合もあります。「たとえば、トロイの木馬型の悪意のあるプログラムに感染し、EDIT.EXEという名前のedit.exeのバージョンは、edit.exeと同じディレクトリに保存される可能性があります。ユーザーがWindowsコマンドプロンプトでeditと入力した場合、標準バージョンの代わりにトロイの木馬バージョン(EDIT.EXE)を実行できます。.. technet.microsoft.com/en-us/library/cc732389.aspx
モアブ

キーファイル/フォルダーの名前を変更しない限り、おそらくWindowsはクラッシュしません。私は、Windowsが正しいケースを使用していることを確認していると確信しています。実際、彼らもそれを推奨しています。
-beatgammit

うーん、それは面白いジャメソンです。その推奨事項へのリンクを提供できますか?
trusktr

11
マルウェアがディスクへの書き込みアクセスを取得した場合、ファイルシステムが大文字と小文字を区別するかどうかに大きな問題があります。#redherring-レオッド12
1

3
レジストリには、システムファイルへの参照がぎっしり詰まっています。大文字と小文字を区別すると、大規模な破損が発生します。
-kreemoweet
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.