現在オフラインです。再接続するためにインターネットの接続を待っています

お使いのブラウザーはサポートされていません

このサイトを利用するには、ブラウザーを更新する必要があります。

Internet Explorer を最新バージョンに更新する

Windows Server 2003 および Windows 2000 Server で DNS サーバー サービスのリモート管理を無効にする方法

Windows Server 2003 のサポートは 2015 年 7 月 14 日で終了しています

Windows Server 2003 のサポートは 2015 年 7 月 14 日で終了しています。この変更は、ソフトウェアの更新プログラムおよびセキュリティ オプションに影響しています。 この変更の意味および保護された状態を維持する方法について説明します。

重要 : この資料には、レジストリの編集方法が記載されています。万一に備えて、編集の前には必ずレジストリをバックアップし、レジストリの復元方法を理解しておいてください。バックアップ、復元、および編集方法の詳細を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
256986 Microsoft Windows レジストリの説明
はじめに
この資料では、次のいずれかのオペレーティング システムが実行されている DNS サーバーの DNS リモート管理を無効にする方法について説明します。
  • Microsoft Windows Server 2003
  • Microsoft Windows 2000 Server
この資料に記載されている方法を使用すると、組織内で DNS サーバー サービスを実行しているコンピュータのセキュリティを強化できます。

Windows Server 2003 および Windows 2000 Server の DNS サーバー サービスで発生する問題の詳細については、次のマイクロソフト Web サイトを参照してください。
詳細

概要

DNS サーバー サービスのデフォルトの設定では、さまざまなインターフェイスを使用してリモート管理を行うことが許可されています。DNS サーバー サービスを開始すると、ephemeral ポートの範囲にある動的ポートにバインドされます。このポートは、DNS の Microsoft 管理コンソール (MMC) スナップインおよび DNS の Windows Management Instrumentation (WMI) プロバイダで使用されます。以下のレジストリ エントリを使用して、DNS サーバー サービスのリモート管理を許可するかどうかを制御できます。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters


値の名前 : RpcProtocol
値の種類 : REG_DWORD
値のデータ : 0x4
RpcProtocol レジストリ エントリで有効な値は次のとおりです。
  • 0x1
    DNS_RPC_USE_TCPIP の設定に対応します。
  • 0x2
    DNS_RPC_USE_NAMED_PIPE の設定に対応します。
  • 0x4
    DNS_RPC_USE_LPC の設定に対応します。
: 値を 0x4 に設定すると、DNS RPC インターフェイスがローカル プロシージャ コールのみに限定されます。これにより、ローカルでの管理のみが許可されます。

リモート管理を無効にした場合の影響

RpcProtocol レジストリ エントリを 0x4 に設定すると、DNS サーバー サービスのリモート管理が無効になります。そのため、RPC または Windows Management Instrumentation (WMI) を使用して DNS サーバーを管理することができません。この状況では、DNS サーバーの管理ツールをリモートから実行することはできません。ただし、ローカルの管理ツールを使用して DNS サーバーを管理したり、ターミナル サービス接続を使用して DNS サーバーのリモート管理を実行したりすることはできます。

RpcProtocol を 0x4 に設定しても DNS クエリ、DNS 動的更新、DNS ゾーン転送などに影響はありません。

: 以下の条件に該当する場合、DNS サーバー サービスのローカルでの管理および構成ができない場合があります。
  • 管理するサーバーのホスト名が 15 文字である。
  • ホスト名を使用してサーバーを選択している。
この問題を解決するには、DNS サーバーの管理ツールを使用して管理するときに、コンピュータの完全修飾ドメイン名 (FQDN) を指定します。

DNS サーバー サービスのリモート管理を無効にする

警告 : レジストリ エディタまたは別の方法を使用してレジストリを誤って変更すると、深刻な問題が発生することがあります。最悪の場合、オペレーティング システムの再インストールが必要になることがあります。マイクロソフトは、レジストリの変更により発生した問題に関しては、一切責任を負わないものとします。レジストリの変更は、自己の責任において行ってください。

DNS サーバー サービスを実行しているコンピュータの RPC 機能を使用したリモート管理を無効にするには、次の手順を実行します。
  1. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。次に regedit と入力し、[OK] をクリックします。
  2. 次のレジストリ サブキーを見つけてクリックします。
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters
  3. [編集] メニューの [新規] をポイントし、[DWORD 値] をクリックします。
  4. [新しい値 #1] (Windows 2000 Server の場合は [New Value #1]) が表示されているボックスに、RpcProtocol と入力し、Enter キーを押します。
  5. [RpcProtocol] を右クリックし、[修正] (または [変更]) をクリックします。
  6. [値のデータ] ボックスに 4 と入力し、[OK] をクリックします。
  7. レジストリ エディタを終了し、DNS サーバー サービスを再起動します。DNS サーバー サービスを再起動するには、次の手順を実行します。
    1. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。[名前] ボックスに cmd と入力し、[OK] をクリックします。
    2. コマンド プロンプトで次のコマンドを入力し、Enter キーを押します。
      net stop dns && net start dns

RpcProtocol レジストリ値を複数のコンピュータに展開する

スクリプトを使用して RpcProtocol レジストリ値を展開することができます。これにより、複数のコンピュータ上で、DNS サーバー サービスのリモート管理を簡単に無効にすることができます。これを行うには、次の手順を実行します。
  1. DNS サーバーを変更する権限を持つアカウントを使用して、ドメインにログオンします。たとえば、ドメイン管理者としてログオンします
  2. すべての DNS サーバーのリストを作成します。これを行うには、コマンド プロンプトで次のコマンドを実行します。
    dsquery * -filter "(servicePrincipalName=DNS*)" -attr dNSHostName -l > dns_servers.txt
    必要に応じて、すべての DNS サーバーを指定するように、作成された dns_servers.txt ファイルを手動で編集してください。たとえば、このコマンドでは、DNS サーバーとして構成されているドメイン コントローラのみが取得されるため、メンバ サーバーとして構成されている DNS サーバーを手動で追加する必要があります。

    : DNS スナップインの各ゾーンの [DNS zone のプロパティ] ダイアログ ボックスの [ネーム サーバー] タブを使用して、このリストに追加する DNS サーバーの名前を確認することができます。
  3. 必要に応じて、コマンド プロンプトで cd コマンドを使用して、dns_servers.txt ファイルを保存したディレクトリに移動します。
  4. 以下のコマンドを入力し、Enter キーを押します。
    for /f %i in (dns_servers.txt) do reg add \\%i\HKLM\SYSTEM\CurrentControlSet\Services\DNS\Parameters /v RpcProtocol /t REG_DWORD /d 4 /f
    このコマンドにより、値が 0x4 に設定された RpcProtocol レジストリ エントリが追加されます。
  5. すべてのコンピュータ上で DNS サーバー サービスを停止します。これを行うには、次のコマンドを入力し、Enter キーを押します。
    for /f %i in (dns_servers.txt) do sc \\%i stop DNS
  6. すべてのコンピュータ上で DNS サーバー サービスを開始します。これを行うには、次のコマンドを入力し、Enter キーを押します。
    for /f %i in (dns_servers.txt) do sc \\%i start DNS

RpcProtocol レジストリ エントリが複数のコンピュータで設定されていることを確認する

サーバーを照会して、RpcProtocol レジストリ エントリが設定されているかどうかを確認するには、次の手順を実行します。
  1. RpcProtocol レジストリ エントリが設定されている DNS サーバーにログオンします。
  2. 以下のスクリプトをテキスト ファイルにコピーし、Dnsquery.cmd という名前を付けます。
    Echo Comparing registry value for: > dns_errors.txt echo HKLM\SYSTEM\CurrentControlSet\Services\DNS\Parameters >> dns_errors.txt echo Data Value for "RpcProtocol" >> dns_errors.txt echo. >> dns_errors.txt echo. >> dns_errors.txt Echo Errorlevel 1 - Failed to compare registry values >> dns_errors.txt Echo Errorlevel 2 - Reg values compared are different >> dns_errors.txt echo. >> dns_errors.txt echo. >> dns_errors.txt echo ===================================================== >> dns_errors.txt set _MachineName= for /f %%i in (dns_servers.txt) do ( call :TEST %%i ):TESTSet _MachineName=%1echo %_MachineName%reg.exe compare "HKLM\SYSTEM\CurrentControlSet\Services\DNS\Parameters" "\\%_MachineName%\HKLM\SYSTEM\CurrentControlSet\Services\DNS\Parameters" /v RpcProtocolif %_MachineName% == "" echo 0 > nulif %errorlevel% == 0 echo 0 > nulif %errorlevel% == 1 Echo Computername: %_MachineName% Errorlevel returned: 1 - Failed >> dns_errors.txtif %errorlevel% == 2 Echo Computername: %_MachineName% Errorlevel returned: 2 - Different >> dns_errors.txt:Endrem exit
    : このスクリプトを実行すると、リモート コンピュータの Parameters レジストリ サブキーと、スクリプトを実行しているコンピュータの Parameters レジストリ サブキーが比較されます。

    重要 : このスクリプトでは、末尾にスペースを含めないでください。
  3. Dnsquery.cmd ファイルをダブルクリックして実行します。

複数のコンピュータから RpcProtocol レジストリ値を削除する

RpcProtocol レジストリ値の設定を解除するには、次の手順を実行します。
  1. DNS サーバーを変更する権限を持つアカウントを使用して、ドメインにログオンします。たとえば、ドメイン管理者としてログオンします
  2. コマンド プロンプトを起動し、cd コマンドを使用して、Dns_servers.txt ファイルを保存したディレクトリに移動します。
  3. 以下のコマンドを入力し、Enter キーを押します。
    for /f %i in (dns_servers.txt) do reg delete \\%i\HKLM\SYSTEM\CurrentControlSet\Services\DNS\Parameters /v RpcProtocol /f
  4. すべてのコンピュータ上で DNS サーバー サービスを停止します。これを行うには、次のコマンドを入力し、Enter キーを押します。
    for /f %i in (dns_servers.txt) do sc \\%i stop DNS
  5. すべてのコンピュータ上で DNS サーバー サービスを開始します。これを行うには、次のコマンドを入力し、Enter キーを押します。
    for /f %i in (dns_servers.txt) do sc \\%i start DNS
プロパティ

文書番号:936263 - 最終更新日: 05/11/2007 08:39:00 - リビジョン: 2.1

  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft Windows Server 2003, Standard x64 Edition
  • Microsoft Windows Server 2003, Enterprise x64 Edition
  • Microsoft Windows Server 2003, Datacenter x64 Edition
  • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
  • Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Datacenter Server
  • kberrmsg kbhowto kbinfo kbtshoot kbregistry KB936263
フィードバック
lementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?"> > + (window.location.protocol) + "//c.microsoft.com/ms.js'><\/script>");