Microsoft® Windows® ベースのオペレーティング システムでは、ファイルやディレクトリなどのほとんどのオブジェクトの名前で、大文字小文字は維持されますが区別されません。つまり、Windows では、これらのオブジェクトに名前を付ける場合に大文字と小文字を使用できますが、大文字小文字の違いだけでは名前が区別されません。たとえば、sample.txt と Sample.txt という名前は、ファイルの識別という目的では同じであると見なされるため、この 2 つのファイルを同じディレクトリに置くことはできません。

大文字小文字の区別と UNIX ベース アプリケーション用サブシステム

対照的に、UNIX ベースのオペレーティング システムでは大文字小文字が完全に区別されるため、UNIX ベースのオペレーティング システムを実行するコンピューターでは、オブジェクト名は、使用する文字の大文字小文字が違うだけでも区別されます。したがって、ほとんどの UNIX ベースのコンピューターでは sample.txt と Sample.txt を同じディレクトリに格納でき、UNIX オペレーティング システムでファイルを操作する際はそれらが区別されます。たとえば、コマンド rm S*.txt を実行すると Sample.txt は削除されますが、sample.txt は削除されません。

UNIX の一般的な動作を実装するために、UNIX ベース アプリケーション用サブシステムでは、ファイル名を扱う場合は通常、大文字小文字が区別されます。このことは、特に、大文字小文字を区別しない Windows の規則に慣れている Windows ユーザーにとってセキュリティの問題をもたらします。たとえば、edit.exe が存在するディレクトリ内に、悪意のあるトロイの木馬型プログラムが感染した EDIT.EXE という名前のファイルを置くことができます。この状態で、ユーザーが Windows のコマンド プロンプトに「edit」と入力すると、本来のバージョンではなくトロイの木馬バージョン (EDIT.EXE) が実行される可能性があります。大文字小文字の区別が有効になっている場合、Windows ユーザーはこの可能性に注意する必要があります。

大文字小文字の区別に関する既定の設定を復元する

Microsoft Windows Server® 2008 R2、Windows® 7、Windows Server® 2008、Windows Vista®、Windows Server® 2003、および Windows XP オペレーティング システムの場合、Win32 サブシステムを除く各サブシステムの既定の動作では、大文字小文字は維持されますが区別されません。以前のバージョンの Windows の場合、これらのサブシステムでは既定で大文字小文字が完全に区別されていました。UNIX 標準の動作をサポートするには、UNIX ベース アプリケーション用サブシステムのユーティリティとソフトウェア開発キット (SDK) のダウンロード パッケージに含まれる基本ユーティリティをインストールする際に、Windows Server 2003 および Windows XP の非 Win32 サブシステムにおける既定の動作を変更します。大文字小文字の区別を有効にした後で基本ユーティリティをアンインストールした場合は、大文字小文字を区別しないという非 Win 32 サブシステムの既定の動作が復元されます。

大文字小文字の区別に関する設定の変更の詳細については、ファイル名とフォルダー名の大文字小文字の区別の設定に関するページ (英語の可能性あり) (https://go.microsoft.com/fwlink/?LinkId=53334) を参照してください。