您目前已離線,請等候您的網際網路重新連線

如何在 Windows Server 2003 和 Windows 2000 Server 中停用 DNS 伺服器服務的遠端系統管理

Windows Server 2003 的支援已於 2015 年 7 月 14 日結束

Microsoft 已於 2015 年 7 月 14 日結束對 Windows Server 2003 的支援。此變更已影響您的軟體更新和安全性選項。 瞭解這對您的意義為何且如何持續受保護。

重要 本文包含如何修改登錄的相關資訊。修改登錄之前,請務必將它備份起來,並瞭解如何在發生問題時還原登錄。如需有關如何備份、還原和修改登錄的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
256986 Description of the Microsoft Windows registry
簡介
本文將告訴您,如何停用執行下列其中一個作業系統的 DNS 伺服器的 DNS 遠端管理:
  • Microsoft Windows Server 2003
  • Microsoft Windows 2000 Server
您可以使用本文所提到的方法,增強組織內執行 DNS 伺服器服務的電腦安全性。

如需有關影響 Windows Server 2003 和 Windows 2000 Server 中 DNS 伺服器服務的問題的詳細資訊,請造訪下列 Microsoft 網站:
其他相關資訊

概觀

根據預設,DNS 伺服器服務允許使用許多介面進行遠端管理。DNS 伺服器服務啟動時,會繫結至暫時範圍的動態連接埠。這個連接埠是由 DNS Microsoft Management Console (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 伺服器服務的遠端管理

警告 如果您使用「登錄編輯程式」或其他方法不當地修改登錄,可能會發生嚴重問題。您可能需要重新安裝作業系統,才能解決這些問題。Microsoft 不保證可以解決這些問題。請自行承擔修改登錄的一切風險。

如果要停用透過 RPC 功能遠端管理執行 DNS 伺服器服務的電腦,請依照下列步驟執行:
  1. 按一下 [開始],按一下 [執行],輸入 regedit,然後按一下 [確定]
  2. 找出並按一下下列登錄子機碼:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters
  3. [編輯] 功能表上,指向 [新增],然後按一下 [DWORD 值]
  4. [新數值 #1] 方塊中,輸入 RpcProtocol,然後按下 ENTER。
  5. 用滑鼠右鍵按一下 [RpcProtocol],然後按一下 [修改]
  6. [數值資料] 方塊中,輸入 4,然後按一下 [確定]
  7. 結束 [登錄編輯程式],然後重新啟動 DNS 伺服器服務。如果要重新啟動 DNS 伺服器服務,請依照下列步驟執行:
    1. 按一下 [開始],按一下 [執行],輸入 cmd,然後按一下 [確定]
    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 10:24: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
意見反應