Windows Server
 Computer >> コンピューター >  >> システム >> Windows Server

Windowsで「RPCサーバーが利用できません」エラーが出る原因と解決策を徹底解説

Windowsで「The RPC server is unavailable(RPCサーバーが利用できません)」というエラーが表示されるのは、ネットワーク上の2台のコンピューター間で通信エラーが発生した場合です。自分のPC(RPCクライアント)がリモートコンピューター(RPCサーバー)に接続できず、実行中のプログラムがリモートホスト上のデータへアクセスできないため、RPCエラーを返して正常に動作しなくなります。本記事では、RPCプロトコルによるコンピューター間通信を妨げる代表的な問題と、その具体的な対処方法を詳しく解説します。

RPCとは?基本的な仕組み

RPC(Remote Procedure Call)は、クライアント・サーバー型アプリケーションがローカルネットワーク上で通信するために広く使われているプロトコルです。通常はリモートコンピューターとの通信に使用されますが、アプリケーションとローカルで稼働するサービスとのやり取りにRPCを利用するプログラムもあります。

典型的なセッションでは、RPCクライアントがTCPポート135経由でRPCサーバー上のRPC Endpoint Mapper(エンドポイントマッパー)サービスに接続し、目的のRPCアプリケーション(サービス)が待ち受けているポート番号を問い合わせます。Endpoint Mapperは、そのサービスが起動時に割り当てられた動的RPCポートの番号を返し、その後クライアントは指定されたTCPポートでRPCサービスに接続します。

RPCクライアントがRPCサーバーに接続できなかった場合、アプリケーションには次のエラーが表示されます。

The RPC server is unavailable

最新のWindows(Vista/2008以降)では、49152〜65535の範囲が動的RPCポート範囲(Dynamic RPC Port range)として使用されます。一方、Windows Server 2003/XP/2000では1024〜65535という異なるポート範囲が使われていました。

RPC通信が失敗する主な原因

  1. リモートコンピューターの電源が入っていない
  2. リモートホスト上でRPC関連サービスが動作していない
  3. 誤ったホスト名(またはDNS名と一致しないIPアドレス)でRPCサーバーに接続しようとしている
  4. サーバーまたはクライアント側のネットワーク接続設定に不備がある
  5. ファイアウォールによってクライアントとサーバー間のRPCトラフィックがブロックされている

リモートコンピューターの可用性を確認する

まず、リモートコンピューターの電源が入っていることを確認し、ホスト名とIPアドレスの両方でpingを実行してみましょう。ホスト名でRPCサーバーに到達できない場合は、DNSレコードが正しいかを確認し、クライアント側でDNSキャッシュをフラッシュします。
ipconfig /flushdns

RPCサーバーが稼働しているコンピューターの名前を最近変更した場合は、Active Directory DNSへの再登録を試みてください。
ipconfig /registerdns

DCE/RPCサービスの状態を確認する

サーバー側で、着信RPC接続を処理するサービスが実行中であることを確認します。

  1. サービス管理コンソール(services.msc)を開きます。
  2. 次のサービスが「実行中」かつ「自動起動」に設定されていることを確認します。Remote Procedure Call (RPC)RPC Endpoint MapperDCOM Server Process Launcher

PowerShellでもサービスの状態を確認できます。

Get-Service RpcSs,RpcEptMapper,DcomLaunch | Select DisplayName,Status,StartType

RPCサービスが停止していて起動できない場合は、レジストリからの有効化を試みてください。各サービスのレジストリキーを開き、Startパラメーターの値を2(自動起動)に変更します。

  • Remote Procedure Call (RPC):HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\RpcSs
  • RPC Endpoint Mapper:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\RpcEptMapper
  • DCOM Server Process Launcher:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\DcomLaunch

ファイアウォールによるRPC接続のブロックを確認する

コンピューター間のRPCトラフィックがファイアウォールでブロックされていないか確認します。「セキュリティが強化されたWindows Defenderファイアウォール」を使用している場合は、RPCトラフィックを許可するルールを作成するか、既存のルールが存在することを確認してください。必要なルールは主に2つあります。1つ目はTCPポート135経由でのRPC Endpoint Mapperサービスへのアクセス許可、2つ目は使用したいRPCサービスへのRPC動的ポート経由のアクセス許可です。これらのルールは、ドメインプライベートパブリックのすべてのネットワークプロファイルに対して作成しましょう。

ルールはMicrosoft公式ドキュメント「Create Inbound Rules to Support RPC」の手順に従って手動で作成できます。ADドメイン環境では、GPOを使ってファイアウォールルールを一括展開したり、PowerShellスクリプトを活用したりすることも可能です。

クライアントからRPCサーバーのTCP/135ポートにアクセスできること(Endpoint Mapperがリッスンしていること)を確認しましょう。PowerShellで次のコマンドを実行します。

Test-NetConnection 192.168.1.201 -port 135

RPCポートが利用可能であれば、TcpTestSucceeded : Trueと表示されます。

PortQryツールを使えば、リモートコンピューターに登録され、RPC Endpoint Mapperサービスによって公開されているRPCエンドポイント(サービスやアプリケーション)の一覧を取得できます。

portqry -n 192.168.1.201 -p tcp -e 135

PortQryの出力から、使用したいRPCサービスに割り当てられたポート番号(サービスが実行中かどうか)を確認し、そのポートがクライアントからブロックされていないことを検証できます。

サードパーティ製のファイアウォールやウイルス対策ソフトを使用している場合は、RPCトラフィックをブロックしていないか、RPC動的ポートの通信を正しく処理できるかも併せて確認してください。

ネットワークプロトコルと設定を確認する

コンピューターのネットワーク設定(IPアドレス、デフォルトゲートウェイ、サブネットマスク、DNSサーバー設定など)が正しいことを確認します(PowerShellからも確認可能)。さらに、ネットワークアダプターの設定でインターネット プロトコル バージョン 6(TCP/IPv6)Microsoft ネットワーク用ファイルとプリンター共有が有効になっていることもチェックしてください。

TCP/IPv6プロトコルが無効だと正常に動作しないネットワークアプリがあり、1722 RPCサーバーは利用できませんというエラーを返すことがあります。IPv6を有効化してもRPCエラーが解消しない場合は、レジストリでTeredoプロトコルを無効化してみてください。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters キーに、名前がDisabledComponents、値が8のDWORD値を作成します。
reg add hklm\system\currentcontrolset\services\tcpip6\parameters /v DisabledComponents /t REG_DWORD /d 8

それでも問題が解決しない場合は、RPCサーバー側でトラフィックダンプを取得し、Microsoft Network Monitor 3.4やMessage Analyzerで解析する必要があります。なお、Windows 10 1809およびWindows Server 2019以降には、Packet Monitor(PktMon.exe)という組み込みのパケットキャプチャツールが標準搭載されていますので、こちらも活用するとよいでしょう。

  1. Windows 10でSystemSettingsAdminFlows.exeエラーを解決する3つの対処法

    Windows 10で「SystemSettingsAdminFlows.exe」に関連するエラーが発生した場合、その原因と解決策を知っておくことが重要です。SystemSettingsAdminFlows.exeは、各種ファイルに対する管理者権限を管理するWindowsの重要なシステムファイルの一つです。このエラーの主な原因はマルウェア感染であり、システムに深刻な被害が及ぶ前に速やかに対処する必要があります。感染の最初の兆候は、以前は管理者権限が必要だったファイルが、パスワード入力なしで簡単にアクセスできるようになることです。つまり、管理者権限を求めるポップアップメッセージ(UACダイアログ

  2. Windows 10で「RPCサーバーを利用できません」エラーを解決する4つの方法

    RPC(Remote Procedure Call)サーバーは、異なるマシン間、または同じコンピューター上の異なるプロセスやコンポーネント間の通信を確立するための重要な仕組みです。Windows 10では、特定のプロセスが正しく機能するように、クライアントとサーバー間でデータをやり取りする必要がある場合があります。これはRPCサービスによって行われ、コンピューターの起動時や再起動時に自動的に開始されます。「RPCサーバーを利用できません」というエラーに直面している場合は、このガイドで紹介する最適な修正方法が役立ちます。 Windows 10でRPCサーバー利用不可エラーを解決するさまざまな方法