【2/17】今年は「濃厚」技術トーク!@ITメールセミナー スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷
Windows TIPS
[Network]
  Windows TIPS TOPへ
Windows TIPS全リストへ
内容別分類一覧へ

システム移行のためにコンピュータに複数の名前を付ける

解説をスキップして操作方法を読む

デジタルアドバンテージ
2003/12/20
 
対象OS
Windows NT
Windows 2000
Windows XP
Windows Server 2003
通常、NetBIOS名は1台のコンピュータにつき、1つしか定義することができない。
システムの統廃合などのために、一時的に1台のコンピュータに複数の名前(NetBIOS名)を付けたいことがある。
レジストリを操作することにより、コンピュータに対して別名を割り当てることができる。
 
解説

 コンピュータ名(NetBIOSホスト名)は、通常は1台のコンピュータにつき、1つしか定義することができない。しかし場合によっては、1台のコンピュータに対して、同時に複数の名前を付けたいということもある。例えば、あるサービスを提供している複数台のコンピュータを統合して1台にする場合、統合元のサーバの名前を新しいサーバにも付けておけば、ユーザーはサーバが変更されたことを意識することなく、そのまま利用し続けることができる。また単にサーバの名前を変更する場合でも、いきなり変更するのではなく、新しい名前を追加で定義して両方のコンピュータ名でアクセスできるようにしておき、しばらく運用してトラブルが起こらないことを確認してから目的とするコンピュータ名に変更する、というような使い方もできる。さらには、実験やトラブルシューティング用途などのために、1台のマシンで多数のコンピュータ名を定義するという用途も考えられるだろう。トラブルが生じているのと同じ(複数の)コンピュータ名をネットワーク上で再現してみることにより、例えば管理ツールなどが特定のコンピュータ名などによって不正な動作をしていないかどうかを確認したりするためだ。

 通常NetBIOS名は1つしか定義することができないが、レジストリを操作することにより、同時に複数のコンピュータ名(NetBIOS名)を持たせることができる。ただしこの操作を行っても、IPアドレス(やネットワーク・インターフェイス)はデフォルトのまま、つまり1つしか存在しないのままなので、物理的に複数台のコンピュータが存在する場合と比べると、少し違いがある。ほとんどの場合はこれでも問題ないが、例えばコンピュータ名とIPアドレスは必ず1対1に対応していて、物理的には別なシステムと見なすようなアプリケーションがあるとすると、動作が不正になるかもしれないので注意していただきたい。

 またサービスによっては、本来のコンピュータ名ではない別名によるアクセスを拒否する可能性があるので(コンピュータ名を変更するとうまく動作しなくなるようなアプリケーションも少なからず存在する)、別名の定義による影響には十分注意して利用していただきたい。

 なおDNSによるコンピュータ名(FQDN名)を複数持たせたい場合は、単にDNSサーバにおいて、同一のホストに対して複数のホスト名を定義しておけばよい。例えばWebサーバなどに対するアクセスでは、FQDN名は名前解決によってIPアドレスに変換され、それに基づいてWebサーバへアクセスされる。そのためコンピュータ名はあまり重要ではない。これに対してNetBIOSサービスでは、(本来は)名前によってサービスの対象が決まるので、このTIPSのように別名を定義する必要性が生じることがある。


操作方法

 コンピュータに複数の名前(NetBIOS名)を付けるためには、以下のように、レジストリに「OptionalNames」という値を作成し、コンピュータ名を記述する。

[注意]

レジストリに不正な値を書き込んでしまうと、システムに重大な障害を及ぼし、最悪の場合、システムの再インストールを余儀なくされることもあります。レジストリ エディタの操作は慎重に行うとともに、あくまで御自分のリスクで設定を行ってください。何らかの障害が発生した場合でも、本Windows Server Insider編集部では責任を負いかねます。ご了承ください。

 
項目 設定
キー HKEY_LOCAL_MACHINE の\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
名前 OptionalNames
種類 文字列値(REG_SZ)または複数行文字列値(REG_MULTI_SZ)。別名を1つ定義する場合はREG_SZ、複数定義する場合はREG_MULTI_SZを使用する
データ コンピュータ名を表す文字列。複数定義する場合は、REG_MULTI_SZにして、各行に1つずつコンピュータ名を記述
別名定義のためのレジストリ

 ここで定義された名前は、コンピュータの別名として扱われる。1つだけ別名を定義するならREG_SZ型で、複数定義するならREG_MULTI_SZ型でそれぞれ記述する(Windows 2000やWindows NTでは、regedt32.exeを使うとREG_MULTI_SZ型を簡単に入力することができる)。

 レジストリを変更後、システムを再起動すると複数のコンピュータ名が有効になっているはずである(数十や数百個といった、あまりにも多くの名前を付けると、起動に少し余計に時間がかかるので注意)。

C:\>nbtstat -n

ローカル エリア接続:
Node IpAddress: [192.168.0.231] Scope Id: []

                NetBIOS Local Name Table

       Name               Type         Status
    ---------------------------------------------
    WINPC001       <00>  UNIQUE      Registered
    D-ADVANTAGE0   <00>  GROUP       Registered
    WINPC001       <03>  UNIQUE      Registered
    WINPC001       <20>  UNIQUE      Registered …本来の名前
    ALPHA01        <20>  UNIQUE      Registered …別名
    BETA02         <20>  UNIQUE      Registered …別名
    GAMMA03        <20>  UNIQUE      Registered …別名
    DELTA04        <20>  UNIQUE      Registered …別名
    THETA05        <20>  UNIQUE      Registered …別名
    ETA06          <20>  UNIQUE      Registered …別名
    EPSILON07      <20>  UNIQUE      Registered …別名
    OMEGA08        <20>  UNIQUE      Registered …別名
    PI09           <20>  UNIQUE      Registered …別名
    D-ADVANTAGE0   <1E>  GROUP       Registered
    INet~Services  <1C>  GROUP       Registered
    IS~WINPC001....<00>  UNIQUE      Registered
    ADMINISTRATOR  <03>  UNIQUE      Registered

 ネットワーク上のコンピュータ名を確認すると、以下のように、すべて異なるコンピュータであるかのように表示される(実際にはすべて\\WINPC001と同じマシン)。エクスプローラなどでそれぞれのマシンをアクセスすると、どれをアクセスしてもすべて同じ共有情報が得られる。

C:\>net view
サーバー名             注釈

-----------------------------------
\\AASERVER01
\\ALPHA01 …別名
\\BETA02  …別名
\\DELTA04 …別名
\\EPSILON07 …別名
\\ETA06   …別名
\\GAMMA03 …別名
\\OMEGA08 …別名
\\PI09    …別名
\\THETA05 …別名
\\WINPC001 …本来の名前
\\ZETA06  …別名
コマンドは正常に終了しました。

 ところで別名として付けられたコンピュータ名は、DNSの動的更新によってDNSサーバに登録されることは「ない」ので、別名でDNSサーバによる名前解決を試みてもすべて失敗することになる。必要ならば手動でDNSサーバにレコードを登録するか(元の名前に対するCNAMEレコードがよいだろう)、本来のコンピュータ名でアクセスしなければならない。End of Article

関連記事(Windows Server Insider)
TIPS―DNSの動的更新を無効にする
     
この記事と関連性の高い別のWindows TIPS
hostsとlmhostsの違い
リモート・ネットワークの名前解決をhosts/lmhostsで行う
ホスト名からIPアドレスを見つける方法
リモート・デスクトップの接続コンピュータ履歴を削除する
リモート・コンピュータの使用者を特定する
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「Windows TIPS」

ホワイトペーパーTechTargetジャパン

Windows Server Insider フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

スキルアップ/キャリアアップ(JOB@IT)

- PR -
- PR -

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  企業の仮想化に足りない“発想”とは?
仮想化運用管理のキモは意外なところに!

New!
  操作もマニュアルも分かりやすい!
ユーザー視点で開発されたPC管理ツール

New!
  仮想化すればコストは削減できるか?
仮想化に必要な「3つの視点」を解説する

  セキュリティを知り尽くす上野氏が登壇!
@ITメールソリューションLive! in Tokyo

  運用管理の課題を“2つの観点”から分析
ユーザー満足度の高い「仮想環境」とは?

  世界に通用するストレージの作り方とは?
製品に込めた思いを富士通の開発者に聞く

  OSSで手間も時間も、障害も減った――
「マピオンの事例」オープンソース活用法

  「ノートPCの持ち出し禁止」で大丈夫?
情報漏えいを防ぐ管理手法とインフラは?

  1日の処理を1秒に――MySQLの達人が語る
「コスト削減」できるチューニング

  ドキュメント作成を自動化して、SEの作業
効率を大幅アップ! Visio 2007の魅力

  急速に広がるHyper-Vでのサーバ仮想化
そのベストプラクティスをデルが解説

  @IT主催セミナーで語られた、「担当者に
求められるセキュリティ対策」をレポート

  @IT「Windows 7」 特設サイトオープン!
最新情報・移行ノウハウを公開しています