サービス アカウントからネットワーク共有プリンターへの印刷が時々失敗する

Windows XP のサポートは終了しました

マイクロソフトでは、2014 年 4 月 8 日に Windows XP のサポートを終了しました。この変更は、ソフトウェアの更新プログラムおよびセキュリティ オプションに影響しています。 この変更の意味および保護された状態を維持する方法について説明します。

Windows Server 2003 のサポートは 2015 年 7 月 14 日で終了しています

Windows Server 2003 のサポートは 2015 年 7 月 14 日で終了しています。この変更は、ソフトウェアの更新プログラムおよびセキュリティ オプションに影響します。 この変更の意味および保護された状態を維持する方法について説明します。

現象
次のシチュエーションを考えます。

サービス アカウントで動作しているプロセスから、UNC パスを指定してネットワーク共有プリンターへ接続します。
複数回の印刷を行っていると、時々 StartDocPrinter 関数や、DocumentProperties 関数などの実行が失敗します。

このとき、最終エラーコードは ERROR_PRINTER_DELETED です。
原因
ネットワーク サービス アカウントは、ポイント アンド プリントで接続するネットワーク共有プリンターへの恒久的な接続を保持することができません。

すべてのネットワーク共有プリンターへの接続は一時接続となりますため、ClosePrinter が実行され、保持しているハンドル数が 0 になった場合にはプリンター接続の削除が実行されます。削除が完了するまで、ネットワーク共有プリンターへの接続は正しく動作しません。
解決方法
問題を回避するためには、次の回避策をご検討ください。

(1) ネットワーク印刷用のローカル ポートを作成する

[プリンターの追加] 画面から LocalPort を作成し、ポートの名前を UNC パスに設定します。
これにより、ネットワーク共有プリンターに印刷するためのローカル プリンターを作成することができます。
サービス アカウントからの印刷実行時には、上記にて作成したローカル プリンターを指定して印刷することで、一時コネクションであることによる問題の発生を回避することができます。

(2) StartDocPrinter や DocumentProperties 関数の再試行を実装する

ERROR_PRINTER_DELETED のエラーにつきましては、時間の経過によってプリンターの削除が完了し、再度印刷が可能となります。
このため、ERROR_PRINTER_DELETED が検出された場合には、一定時間後に関数の実行を再試行していただくよう、プログラムを変更することについて検討してください。
詳細
サービス アカウントからの、ポイント アンド プリントによるネットワーク共有プリンターへの接続は推奨されておりません。
注意 : これは、マイクロソフトのサポート組織内で直接作成された "緊急公開" の資料です。 この資料には、確認中の問題に関する現状ベースの情報が記載されています。 情報提供のスピードを優先するため、資料には誤植が含まれる可能性があり、予告なしに随時改定される場合があります。 その他の考慮事項については、使用条件を参照してください。
プロパティ

文書番号:2673341 - 最終更新日: 09/20/2016 10:33:00 - リビジョン: 3.0

Microsoft Windows 2000 Advanced Server, Microsoft Windows 2000 Professional, Microsoft Windows 2000 Server, Microsoft Windows XP Home Edition, Microsoft Windows XP Professional, Microsoft Windows Server 2003 R2 Datacenter Edition (32-Bit x86), Microsoft Windows Server 2003 R2 Enterprise Edition (32-Bit x86), Microsoft Windows Server 2003 R2 Standard Edition (32-bit x86), Microsoft Windows Server 2003, Datacenter Edition (32-bit x86), Microsoft Windows Server 2003, Enterprise Edition (32-bit x86), Microsoft Windows Server 2003, Standard Edition (32-bit x86), Windows Server 2008 Enterprise, Windows Server 2008 R2 Enterprise, Windows Server 2008 R2 Standard, Windows Server 2008 Standard, Windows 7 Enterprise, Windows 7 Home Premium, Windows 7 Professional, Windows 7 Ultimate, Windows Vista Business, Windows Vista Enterprise, Windows Vista Ultimate

  • KB2673341
フィードバック