ポートに UNC パスを使用したプリンターで印刷に失敗する事象について

Last Update: feedback 共有

本記事はマイクロソフト社員によって公開されております。

こんにちは、Windows サポート チームの浅野です。
本記事では、Windows の印刷における問題について説明します。

概要

現在、2021 年 12 月 14 日リリース以降の品質更新プログラムを適用した Windows 10 および Windows 11 環境において、
フォトなどの UWP アプリからの印刷時、UNC パスが指定されたプリンターで印刷が失敗する事象を確認しております。

次のような条件で問題が発生します。

・ プリンターのポートとして、共有プリンターのパスを UNC パスとして指定します。
Printport

・ 上記プリンターから、[フォト] や、[メール] などの UWP ベースのアプリから印刷します。その結果、下記のようなエラーが発生し印刷に失敗します。
printerror

原因

2021 年 12 月 14 日リリースの更新プログラムにて、印刷スプーラーの脆弱性対応が行われ、
UWP アプリケーションからの印刷へのセキュリティが強化された結果、UNC パスのように整合性レベル中以上が必要なファイルオブジェクトに対して、整合性レベル低のプロセスである UWP が印刷を行うとアクセス拒否が発生しておりました。

回避策

多くの場合、プリンタはプリントサーバーを経由して、共有プリンタとして利用するか、TCP/IP のプリンタ ポートを利用されています。
今回の問題は、これらのシナリオでは発生せず、手動で UNC パスのプリンタポートを作成し利用した場合のみに発生します。
このため UNC パスを利用せず、プリントサーバー経由で共有プリンタを利用するか、TCP/IP のプリンタ ポートを作成して利用することで回避することができます。
また、プリントサーバー経由で共有プリンタを利用するか、TCP/IP のプリンタ ポートを利用して、回避することを強く推奨していますが、やむを得ず UNC パスを利用する必要がある場合、以下のレジストリを設定し、スプーラー サービスを再起動することでも回避することができます。

  1. 管理者権限のコマンドプロンプトを起動

  2. 印刷ジョブなどが存在しないことを確認

  3. 以下のコマンドを実行

    1
    2
    3
    reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Printers" /v {CA791BB3-9742-4A0F-87B8-B3C4B1065856} /t REG_DWORD /d 1 /f
    sc stop spooler
    sc start spooler

しかし、この方法は、整合性レベルのチェックが無効になるため、セキュリティの観点からも利用は推奨していません。
また、Microsoft Photo App のようにアプリケーションの形式が UWP から Windows App SDK にマイグレーションされた場合、この回避方法は不要になるため、この回避方法を適用する前に回避方法が必要であるかを十分に確認する必要があります。
なお、Microsoft Photo App のマイグレーションについては、以下のブログに記載があります。

Microsoft Photos: Migrating from UWP to Windows App SDK

修正につきまして

セキュリティの観点から整合性レベルのチェックを強化したために発生した問題であるため、この問題の修正を行う予定はありません。

本投稿が少しでも皆様のお役に立てば幸いです。 本情報の内容(添付文書、リンク先などを含む)は、作成日時でのものであり、予告なく変更される場合があります。

更新履歴
2023/03/09 本 Blog の公開
2025/05/19 技術的原因の説明、レジストリによる回避策、修正予定なしの方針を追記