Windowsのコンピュータ名における大文字と小文字の扱いについて

コンピュータ名の大文字と小文字は区別されるのか

例えば、上図のような構成があったとする。

既存の Windows Server 2016 には、すべて大文字で「TURNING-POINT」というコンピュータ名が設定されている。

その状況下において、Windows Server 2016 と同一ネットワークに存在する Windows 10 のコンピュータ名を「Turning-Point」に変更する。

結果的に、Windows 10 のコンピュータ名を「Turning-Point」に変更できれば Windows はコンピュータ名の大文字と小文字を区別している

つまり、大文字の「TURNING-POINT」と、小文字を含んだ「Turning-Point」はまったく別のコンピュータ名だと判断しているということだ。

Windows 10 のコンピュータ名を変更する

既にネットワーク上には、コンピュータ名「TURNING-POINT」の Windows Server 2016 が存在している。

早速、Windows 10 のコンピュータ名の変更を試みる。

「Turning-Point」と入力し、"OK" をクリックすると以下のメッセージがポップする。

名前 "TURNING-POINT" の検証中に次のエラーが発生しました。

 

重複する(より短い NETBIOS 名の可能性のある)名前がネットワーク上に存在します。別の名前を選択してください。

 

選択肢は "OK" しか存在しない。

上図のような警告は出現するものの、コンピュータ名自体は「Turning-Point」に設定することができた。

変更は可能だったが、「重複する名前がネットワーク上に存在します」という文より、「TURNING-POINT」と「Turning-Point」が同一のコンピュータ名として扱われていることがわかる。

そして「名前 "TURNING-POINT" の検証中に次のエラーが発生しました。」という警告から、検出のプロセスにおいてコンピュータ名が大文字で処理されていることは明白だ。

警告文には「別の名前を選択してください。」という文言もあった。

それらを踏まえて結果をまとめると、以下のようになる。

  • 表示上はコンピュータ名に小文字を使用することは可能
  • コンピュータ名が重複しても設定自体は可能(ただし、別の名前を選択してくださいと警告される)
  • 少なくともコンピュータ名の検出プロセスにおいて、コンピュータ名は大文字で処理される

大文字のコンピュータ名を小文字に変更する

Windows Server 2016 には「TURNING-POINT」というコンピュータ名を設定している。

それを「turning-point」に変更しようとするとどうなるか。

コンピュータ名の大文字・小文字を区別していなければ、同一のコンピュータ名と判断され、設定は変更できないはずだ。

「TURNING-POINT」から「turning-point」へ変更しようとするものの、「OK」ボタンがグレーアウトしており、クリックすることができない。

つまり、想定通りの結果になった。

これは非常に重要な判断材料だ。コンピュータ名の大文字・小文字が一切変更出来ないということは、Windows OS はシステムとしてコンピュータ名の大文字・小文字を区別していない可能性が高い。

hostname コマンドを実行する

コンピュータ名を確認する「hostname」コマンドを Windows 10 で実行する。

すると、設定値の「Turning-Point」が出力される。システムのプロパティもそうだが、表示上は小文字が区別されている。

小文字が区別されているということは、例え処理に使わないとしてもレジストリのどこかにその値は格納されているはずだ。

ひとまずの結論

結論としては、コンピュータ名における大文字・小文字の区別は存在しない

ただし、設定値としての小文字は記録しており、表示する際に利用している。また、Windows 以外の大文字・小文字を区別する技術と連携する際はそのパラメータを利用する可能性がある。

更に、海外のサイトには以下のような記述も存在する。

Avoid using lowercase letters in a computer name whenever possible. On Windows Vista, the case of letters (upper or lower) is ignored. Older versions of Microsoft Windows, however, treat computer names as case sensitive. Entering computer names in all uppercase is recommended to avoid possible name conflicts that could prevent Windows computers from identifying each other.

 

可能な限りコンピュータ名には小文字を使用しないでください。 Windows Vistaでは、文字(大文字または小文字)の大文字・小文字は無視されます。 しかし、古いバージョンのMicrosoft Windowsは、コンピュータ名の大文字と小文字を区別して扱います。 名前の競合が起こらず、Windowsコンピュータ同士の識別が妨げられる可能性があるため、コンピュータ名をすべて大文字で入力することをお勧めします

 

Quote:Naming Rules for Computers on Windows Networks

少なくとも Windows Vista 以降の Windows OS において、大文字・小文字は区別されないという事だ。

古いバージョンの Microsoft Windows はコンピュータ名の大文字・小文字を区別するということも記述されている。

ここまでの情報から最終的な意見を述べるとするなら、コンピュータ名は大文字で設定した方がいいだろう。

コンピュータ名のレジストリ

そもそも、「システムのプロパティ」や「hostname」コマンドで小文字を含むコンピュータ名が表示されるということは、その情報がレジストリに存在するはずだ。

そのコンピュータ名が格納されているレジストリをひたすら探すというコーナーだ。

小文字が含まれていたレジストリ

3分クッキングよろしく、小文字のコンピュータ名が格納されていたレジストリ一覧を用意しておいた。

以下のレジストリのデータが小文字を含む「Turning-Point」であることがわかった。

  • HKEY_LOCAL_MACHINE\SYSTEM\CntrolSet001\Services\Tcpip\Parameters\Hostname
  • HKEY_LOCAL_MACHINE\SYSTEM\CntrolSet001\Services\Tcpip\Parameters\NV Hostname
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Hostname
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\NV Hostname

上記の4つのように、小文字を含むコンピュータ名は全て「Hostname」というレジストリに格納されていた。

それに対し、「ComputerName」というレジストリも複数存在したが、全て大文字の「TURNING-POINT」が値として格納されていた。

Windows のコンピュータ名がいわゆる NetBIOS名を含む概念であるのに対し、ホスト名は TCP/IP の世界の概念だ。

上記のレジストリを見ていると、それらの関係性にまで発展しそうだ。

追記

発展させてみた

まずは下記の記事を一読して Windows におけるコンピュータ名とホスト名の違いを理解してほしい。

コンピュータ名とホスト名の違い

そのあとに、以下の記事を読んでみてほしい。

記事準備中

上記の記事は「ホスト名とNetBIOS名に小文字は使用可能なのか」というもう少し踏み込んだ観点から Windows のコンピュータ名というものを考えている。

レジストリの検索の様子(読む必要なし)

まずは「レジストリ エディター」を起動する。起動したら「コンピューター」を選択した状態で "Ctrl + F" を入力する。

「検索する値」に「Turning-Point」と入力し「次を検索」をクリックする。

レジストリの検索には多少の時間がかかる。

レジストリの検索は上から順に行われていく。まず見つかったのは「LOGONSERVER」というレジストリだ。

格納されているデータは大文字になっている。探したいのは小文字を含んだ情報(つまり "Turning-Point")のため、次のデータを検索する。

HKEY_CURRENT_USER\Volatile Environment\LOGONSERVER

HKEY_CURRENT_USER\Volatile Environment\LOGONSERVER

次の「USERDOMAIN」も大文字の "TURNING-POINT" のため、発見するまでひたすら探す。

HKEY_CURRENT_USER\Volatile Environment\USERDOMAIN

HKEY_CURRENT_USER\Volatile Environment\USERDOMAIN

HKEY_CURRENT_USER\Volatile Environment\USERDOMAIN_ROAMINGPROFILE

HKEY_CURRENT_USER\Volatile Environment\USERDOMAIN_ROAMINGPROFILE

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\SessionData\a\LoggedOnSAMUser

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\SessionData\a\LoggedOnSAMUser

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\SessionData\a\LoggedOnUser

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\SessionData\a\LoggedOnUser

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\DataStore\Machine\0\szName

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\DataStore\Machine\0\szName

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\DataStore\Machine\0\szTargetName

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\DataStore\Machine\0\szTargetName

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\DataStore\SID\szName

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\DataStore\SID\szName

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Reliability\LastComputerName

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Reliability\LastComputerName

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Group Policy\DataStore\Machine\0\szName

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Group Policy\DataStore\Machine\0\szName

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Group Policy\DataStore\Machine\0\szTargetName

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Group Policy\DataStore\Machine\0\szTargetName

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Group Policy\DataStore\SID\szName

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Group Policy\DataStore\SID\szName

HKEY_LOCAL_MACHINE\SYSTEM\CntrolSet001\Control\ComputerName\ActiveComputerName\ComputerName

HKEY_LOCAL_MACHINE\SYSTEM\CntrolSet001\Control\ComputerName\ActiveComputerName\ComputerName

HKEY_LOCAL_MACHINE\SYSTEM\CntrolSet001\Control\ComputerName\ComputerName\ComputerName

HKEY_LOCAL_MACHINE\SYSTEM\CntrolSet001\Control\ComputerName\ComputerName\ComputerName

HKEY_LOCAL_MACHINE\SYSTEM\CntrolSet001\Services\Tcpip\Parameters\Hostname

HKEY_LOCAL_MACHINE\SYSTEM\CntrolSet001\Services\Tcpip\Parameters\Hostname

HKEY_LOCAL_MACHINE\SYSTEM\CntrolSet001\Services\Tcpip\Parameters\NV Hostname

HKEY_LOCAL_MACHINE\SYSTEM\CntrolSet001\Services\Tcpip\Parameters\NV Hostname

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName\ComputerName

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName\ComputerName

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName\ComputerName

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName\ComputerName

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Hostname

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Hostname

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\NV Hostname

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\NV Hostname

HKEY_USERS\SID\Volatile Environment\LOGONSERVER

HKEY_USERS\SID\Volatile Environment\LOGONSERVER

HKEY_USERS\SID\Volatile Environment\USERDOMAIN

HKEY_USERS\SID\Volatile Environment\USERDOMAIN

HKEY_USERS\SID\Volatile Environment\USERDOMAIN_ROAMINGPROFILE

HKEY_USERS\SID\Volatile Environment\USERDOMAIN_ROAMINGPROFILE

23のレジストリを参照してようやく終了だ。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)