Windows 11で印刷するための RPC 接続の更新
適用対象: Windows 11、バージョン 22H2 以降のバージョンの Windows
Windows 11バージョン 22H2 では、印刷または印刷関連の操作中に Windows マシンが相互に通信する方法を変更する印刷コンポーネントの変更が導入されています。 たとえば、変更は、プリント サーバーまたはネットワーク上の別のコンピューターによって共有されているプリンターに印刷するときに有効になります。 これらの変更は、Windows での印刷の全体的なセキュリティをさらに向上させるために行われました。 RPC 接続設定の既定の構成では、より新しく安全な通信方法が適用されます。 ホーム ユーザーとエンタープライズ管理者は、環境の設定をカスタマイズすることもできます。
更新プログラムの詳細
印刷関連の通信の場合、既定では、RPC over TCP がクライアント - サーバー通信に使用されます。
- コンピューター間の印刷関連通信に RPC over Named Pipes を使用することは引き続き使用できますが、既定では無効になっています。
- 印刷関連通信に RPC over TCP または RPC over Named Pipes を使用すると、グループ ポリシーまたはレジストリを介して制御できます。
既定では、クライアントまたはサーバーは、TCP 経由の RPC 経由の受信接続のみをリッスンします。
- スプーラー サービスは、RPC 経由の名前付きパイプ経由で受信接続をリッスンするように構成することもできます。 これは既定の構成ではありません。
- この動作は、グループ ポリシーまたはレジストリを使用して制御できます。
RPC over TCP を使用する場合、動的ポートではなく通信に使用するように特定のポートを構成できます。
すべてのコンピューターがドメインに参加し、Kerberos をサポートする環境で、Kerberos 認証を適用できるようになりました。
環境の構成に関する推奨事項
コンピューター間の通信に関する問題を回避または解決するために環境を適切に構成する方法に関する推奨事項を次に示します。
TCP 通信経由で RPC を許可する
最も一般的な問題は、ファイアウォール規則がコンピューター間の通信を妨げているということです。 ファイアウォールの問題を解決するには、次の手順に従います。
- RPC エンドポイント マッパー ポート (135) がブロックされていないことを確認します。
- サーバー上の高範囲エフェメラル ポート (49152 ~ 65535) を開くか 、「RPC を構成して特定のポートを使用する 」セクションのガイダンスに従って RPC のポート範囲を指定します。
さまざまなポートとそのシステム サービスごとの使用状況の詳細については、「 Windows のサービスの概要とネットワーク ポートの要件」を参照してください。
名前付きパイプでの RPC の使用
この構成は推奨されません。 ただし、RPC over TCP が現在の環境でオプションではない場合に使用できます。
- Windows 11バージョン 22H2 コンピューターで、通信に RPC over TCP ではなく名前付きパイプ経由で RPC を使用できるようにするには、「クライアント - サーバー通信に RPC over Named Pipes を使用する」セクションを参照してください。
- Windows 11バージョン 22H2 コンピューターが、名前付きパイプ経由で RPC 経由で受信接続をリッスンし、RPC over TCP で受信接続をリッスンできるようにするには、「名前付きパイプ経由での RPC での受信接続のリッスンを有効にする」セクションを参照してください。
また、環境内で RPC over Named Pipes を適切にサポートするために、次の追加構成も必要になる場合があります。
- サーバー/ホスト コンピューターで RpcAuthnLevelPrivacyEnabled レジストリ値を 0 に設定します。 CVE-2021-1678 (KB4599464) の「プリンター RPC バインド変更の展開の管理 」を参照してください (microsoft.com)
- 一部のシナリオでは、SMB2/SMB3 でのゲスト アクセスも必要です。これは既定で無効になっています。 有効にするには、「Windows で既定で無効になっている SMB2 および SMB3 のゲスト アクセス」を参照してください。
特定のポートを使用するように RPC を構成する
特定のポートを使用するように RPC を構成する方法と、IPsec を使用してこれらのポートをセキュリティで保護する方法に関するページを参照してください。
- 動的または除外されたポート範囲を設定するには、コマンドを
netsh int
実行します。 - netsh で IPSec を使用するには、コマンドを実行します
netsh ipsec
。 - Windows ファイアウォールを使用してポートの範囲をブロックするには、コマンドを
netsh advfirewall
実行します。
上記のすべては実行可能な解決策です。 ただし、一部のソリューションは、各ポート (IPSec と AdvFirewall) の規則を設定する必要があるソリューションよりも簡単な場合があります。 テスト目的で、範囲を指定できるため、動的/除外ポート範囲メソッドを使用できます。 例:
ダイナミック ポート範囲を制限するには、次のコマンドを実行します。
netsh int ipv4 show dynamicport tcp
netsh int ipv4 show dynamicport udp
netsh int ipv4 set dynamicportrange tcp startport=50000 numberofports=255
netsh int ipv4 set dynamicportrange udp startport=50000 numberofports=255
netsh int ipv6 set dynamicportrange tcp startport=50000 numberofports=255
netsh int ipv6 set dynamicportrange udp startport=50000 numberofports=255
次に、コンピューターを再起動します。
注:
255 は、設定できるポートの最小数です。
ポート範囲をさらに制限するには、次のコマンドを実行します。
netsh int ip show excludedportrange tcp
netsh int ip show excludedportrange udp
netsh int ipv4 add excludedportrange tcp startport=50000 numberofports=225
netsh int ipv4 add excludedportrange udp startport=50000 numberofports=225
netsh int ipv6 add excludedportrange tcp startport=50000 numberofports=225
netsh int ipv6 add excludedportrange udp startport=50000 numberofports=225
次に、コンピューターを再起動します。
注:
ポートの数を制限しすぎると、システム上のサービスは効果的に通信できず、機能に問題が発生する可能性があります。
Windows 印刷コンポーネントの RPC 通信の構成
次の設定は、グループ ポリシーまたはレジストリを介して直接構成して、目的の効果を実現できます。 各設定の詳細については、グループ ポリシー エディターのドキュメントを参照してください。
クライアント – サーバー通信に RPC over Named Pipes を使用する
- グループ ポリシーを使用して有効にします。
パス: コンピューターの構成>管理用テンプレート> プリンターRPC 接続の設定を構成する>
RpcOverNamedPipes を有効にして設定します。 - レジストリを使用して設定を有効にします。
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Printers\RPC" /v RpcUseNamedPipeProtocol /t REG_DWORD /d 1 /f
を実行します。
名前付きパイプ経由の RPC での受信接続のリッスンを有効にする
- グループ ポリシーを使用して有効にします。
パス: コンピューターの構成 > 管理用テンプレート > プリンター RPC リスナー設定を構成する>
RpcOverNamedPipesAndTcp に使用できるプロトコルを有効にして設定します。 - レジストリを使用して設定を有効にします。
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Printers\RPC" /v RpcProtocols /t REG_DWORD /d 0x7 /f
を実行します。
RPC over TCP 通信に特定のポートを使用する
- グループ ポリシーを使用して有効にします。
パス: コンピューター構成>管理テンプレート>プリンターTCP ポート経由で> RPC を構成する ポート番号を有効にして設定する - レジストリを使用して設定を有効にする
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Printers\RPC" /v RpcTcpPort /t REG_DWORD /d <port number> /f
を実行します。
最大ポート: 65535
Kerberos 認証を適用する
- グループ ポリシーを使用して有効にします。
パス: コンピューターの構成>管理用テンプレート> プリンターRPC リスナー設定を構成する>
Kerberos に使用できる認証プロトコルを有効にして設定します。 - レジストリを使用して設定を有効にする
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Printers\RPC" /v ForceKerberosForRpc /t REG_DWORD /d 1 /f
を実行します。