スクリプトを使用して、Windows XP Service Pack 2 を実行するコンピュータで SQL Server を使用できるようにポートを開く方法

文書翻訳 文書翻訳
文書番号: 839980 - 対象製品
すべて展開する | すべて折りたたむ

はじめに

Microsoft Windows XP Service Pack 2 (SP2) に含まれている Windows ファイアウォールは、インターネット接続ファイアウォール (ICF) の拡張版です。Windows XP SP2 を実行するコンピュータでは、Windows ファイアウォールがデフォルトで有効になっています。Windows ファイアウォールによって、TCP/IP を使用するネットワーク接続、名前付きパイプを使用するネットワーク接続、およびマルチプロトコルのリモート プロシージャ コール (RPC) を使用するネットワーク接続の一部がブロックされます。これにより、Microsoft Data Engine (MSDE)、Microsoft SQL Server 2000 および Microsoft SQL Server 2005 に影響が生じることがあります。

名前付きパイプ、TCP/IP、または RPC を使用してネットワークにアクセスするために SQL Server または MSDE が必要なアプリケーションがある場合、この資料の「詳細」に記載されているスクリプトを使用することによって、Windows ファイアウォールのユーザー インターフェイスを使用せずに必要なポートを自動的に開くことができます。

この資料には 2 つのスクリプトが記載されています。最初のスクリプトは、SQL Server がネットワークのすべてのポートをリッスンできるように Windows ファイアウォールを自動的に構成します。2 番目のスクリプトは、SQL Server が TCP/IP のみをリッスンするように Windows ファイアウォールを自動的に構成します

: ポートは、必要が生じた場合にのみ開くことをお勧めします。


この資料に記載されているスクリプトでは、名前付きパイプでのマルチプロトコル (RPC) のみが許可されます。RPC over TCP/IP を使用している場合、TCP/IP の使用について記載されている次の「サポート技術情報」 (Microsoft Knowledge Base) を参照してください。
841252 Windows XP Service Pack 2 で SQL Server 2000 用に TCP/IP を手動で有効にする方法

詳細

すべてのポートを使用できるようにするスクリプト

以下に記載されているスクリプトを実行すると、SQL Server がネットワークのすべてのプロトコルをリッスンできるように Windows ファイアウォールが構成されます。

スクリプトに関する注意事項
  • このスクリプトは、Windows XP Service Pack 2 を実行しているコンピュータでのみ実行できます。
  • このスクリプトには、名前付きパイプおよびマルチプロトコル (RPC) を有効にする追加オプションがあります。
  • このスクリプトによって、名前付きパイプでマルチプロトコル (RPC) のみが有効になり、ポート 445 のみが開きます。
  • このスクリプトでは、ポートの範囲を指定する機能は提供されません。

スクリプトを作成するには、以下の手順を実行します。
  1. メモ帳を起動します。
  2. 次のコードをコピーしてメモ帳に貼り付けます。
    echo off
    
    if "%1"=="-np" goto HandleNp
    if "%1"=="-rpc" goto HandleRpc
    if "%1"=="-tcp" goto HandleTcp
    if "%1"=="-browser" goto HandleBrowser
    
    rem Usage
    :Usage
    
    echo "Usage: setupSqlServerPortAll -[np | rpc | tcp | browser] -port [portnum] -[enable | disable]
    echo "-np : Setup SQLServer to listen on Named Pipe connections for local subnet only"
    echo "-rpc : Setup SQLServer to listen on RPC multiprotocol for local subnet only"
    echo "-tcp : Setup SQLServer to listen on TCP connections for local subnet only"
    echo "       Must specify a port if -tcp option is chosen."
    echo "-browser :  Setup SQLServer to provide SSRP service to support named instances"
    echo "-port : Applies only for tcp"
    echo " One of the following options MUST be specified"
    echo "-enable: Enables a port"
    echo "-disable: Disables a port"
    
    goto Exit
    
    :HandleTcp
    echo %2
    if "%2"=="-port" goto cont
    goto Usage
    :cont
    if "%3"=="" goto Usage
    if "%4"=="-enable" goto EnableTcp
    if "%4"=="-disable" goto DisableTcp
    goto Usage
    
    :EnableTcp
    echo "Enabling SQLServer tcp access for port %3 local subnet only"
    netsh firewall set portopening tcp %3 SQL%3 ENABLE subnet
    goto Exit
    
    :DisableTcp
    echo Disabling SQLServer tcp access for port %3 local subnet only"
    netsh firewall set portopening tcp %3 SQL%3 disable subnet 
    goto Exit
    
    :HandleNp
    if "%2"=="-enable" goto EnableNp
    if "%2"=="-disable" goto DisableNp
    goto Usage
    
    :EnableNp
    echo "Enabling SQLServer named pipe access for local subnet only"
    netsh firewall set portopening tcp 445 SQLNP ENABLE subnet
    goto Exit
    
    :DisableNp
    echo Disabling SQLServer named pipe access for local subnet only"
    netsh firewall set portopening tcp 445 SQLNP DISABLE subnet
    goto Exit
    
    :HandleRpc
    if "%2"=="-enable" goto EnableRpc
    if "%2"=="-disable" goto DisableRpc
    goto Usage
    
    :EnableRpc
    echo "Enabling SQLServer multiprotocol access for local subnet only"
    netsh firewall set portopening tcp 445 SQLNP enable subnet
    goto Exit
    
    :DisableRpc
    echo Disabling SQLServer multiprotocol access for local subnet only"
    netsh firewall set portopening tcp 445 SQLNP disable subnet
    goto Exit
    
    :HandleBrowser
    if "%2"=="-enable" goto EnableBrowser
    if "%2"=="-disable" goto DisableBrowser
    goto Usage
    
    :EnableBrowser
    echo "Enabling SQLServer SSRP service for local subnet only"
    netsh firewall set portopening udp 1434 SQLBrowser enable subnet
    goto Exit
    
    :DisableBrowser
    echo "Enabling SQLServer SSRP service for local subnet only"
    netsh firewall set portopening udp 1434 SQLBrowser disable subnet
    goto Exit
    
    :Exit
    endlocal
    
    
  3. このファイルに ConfigSQLPorts.txt という名前を付け、.txt ファイルとして保存します。
  4. ConfigSQLPorts.txt ファイルの名前を ConfigSQLPorts.bat に変更します。

ConfigSQLPorts.bat に含まれているスクリプトは、このスクリプトが保存されているコンピュータで実行する必要があります。スクリプトを実行するには、以下の手順を実行します。
  1. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。[名前] ボックスに cmd と入力し、[OK] をクリックします。
  2. コマンド プロンプト ウィンドウで、ConfigSQLPorts.bat が保存されているフォルダに到達するまで cd コマンドを実行します。たとえば、ConfigSQLPorts.bat ファイルが C:\Myfiles フォルダに保存されている場合は、コマンド プロンプトで cd myfiles と入力し、Enter キーを押します。これにより、C:\Myfiles に移動します。
  3. ConfigSQLPorts.bat スクリプトを実行するには、コマンド プロンプトで ConfigSQLPorts.bat と入力し、続けて必要なオプションを指定し、Enter キーを押します。




TCP/IP ポートのみを使用できるようにするスクリプト

以下に記載されているスクリプトを実行すると、SQL Server が TCP/IP のみをリッスンできるように Windows ファイアウォールが構成されます。

スクリプトを作成するには、以下の手順を実行します。
  1. メモ帳を起動します。
  2. 次のコードをコピーしてメモ帳に貼り付けます。

    echo off
    setlocal
    
    if "%1"=="-port" goto HandleTcp
    
    rem Usage
    :Usage
    
    echo "Usage: setupSqlServerPort -port [portnum] -[enable | disable] [ALL | SUBNET]"
    echo -port : Specifies the port to be enabled or disabled. Port is not optional.
    echo -enable: Enables a port
    echo -enable ALL:  enables access for ALL
    echo -enable SUBNET:  enables access for SUBNET
    echo -disable: Disables a port
    echo  one of -enable or -disable must be specified
    echo  the default scope is SUBNET only
    
    goto Exit
    
    :HandleTcp
    if "%2"=="" goto Usage
    if "%3"=="-enable" goto EnableTcp
    if "%3"=="-disable" goto DisableTcp
    goto Usage
    
    
    :EnableTcp
    set SCOPE="%4"
    if "%4"=="ALL" echo "Enabling SQLServer tcp access for port %2 ALL access" 
    if "%4"=="SUBNET" echo "Enabling SQLServer tcp access for port %2 subnet only access"
    if "%4"=="" set SCOPE="SUBNET"
    
    netsh firewall set portopening tcp %2 SQL_PORT_%2 ENABLE %SCOPE%
    goto Exit
    
    :DisableTcp
    echo Disabling SQLServer tcp access for port %2"
    netsh firewall set portopening tcp %2 SQL_PORT_%2 disable 
    goto Exit
    
    :Exit
    endlocal
    
    
  3. このファイルに SetupSqlServerPort.txt という名前を付け、.txt ファイルとして保存します。
  4. SetupSqlServerPort.txt ファイルの名前を SetupSqlServerPort.bat に変更します。


SetupSqlServerPort.bat に含まれているスクリプトは、このスクリプトが保存されているコンピュータで実行する必要があります。スクリプトを実行するには、以下の手順を実行します。
  1. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。[名前] ボックスに cmd と入力し、[OK] をクリックします。
  2. コマンド プロンプト ウィンドウで、SetupSqlServerPort.bat が保存されているフォルダに到達するまで cd コマンドを実行します。たとえば、SetupSqlServerPort.bat ファイルが C:\Myfiles フォルダに保存されている場合は、コマンド プロンプトで cd myfiles と入力し、Enter キーを押します。これにより、C:\Myfiles に移動します。
  3. SetupSqlServerPort.bat スクリプトを実行するには、コマンド プロンプトで SetupSqlServerPort.bat と入力し、続けて必要なオプションを指定し、Enter キーを押します。


関連情報

Windows XP Service Pack 2 および SQL Server 2000 の構成方法の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
841249 Windows XP Service Pack 2 (SP2) を SQL Server と共に使用するように構成する方法

プロパティ

文書番号: 839980 - 最終更新日: 2006年2月6日 - リビジョン: 3.3
この資料は以下の製品について記述したものです。
  • Microsoft SQL Server 2000 Desktop Engine (Windows)
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server, Desktop Edition
  • Microsoft Windows XP Embedded
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2000 Standard Edition
キーワード:?
kbfirewall kbinfo KB839980
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com