概要
この文書では、ローカルで設定された、物理的に追加されたまたはネットワークプリンタなどが自動作成されない場合のトラブルシューティング手順について説明しています。
インポートされたネットワークプリンタに対して、この文書で説明しているトラブルシューティング方法を適用している間に、下記のような現象が発生する場合は、ローカルに設定されたワークステーションプリンタの自動作成とは異なるトラブルシューティングが必要になります。
CTX102828 - MetaFrame XPのネットワークプリントサーバーのインポートに関するトラブルシューティング
ユニバーサルプリンタドライバ(UPD)のトラブルシューティングについては、以下の文書を参照してください。
• CTX102583 - Citrixユニバーサルプリンタドライバ(UPD)のトラブルシューティングと解説
• CTX105992 - Citrix ICA印刷機能のトラブルシューティング - クイックリファレンスガイド
• CTX109092 - Citrix Presentation Server 4.0のプリンタ関連の問題のトラブルシューティング
手順
プリンタの自動作成に関するトラブルシューティングを行なうには、以下の手順に従います。
1. Citrixコネクション構成ツールで、ICAリスナーポートをダブルクリックします。[クライアント設定]ボタンをクリックし、[ログオン時にクライアントのプリンタに接続]チェックボックスがオンになっていることを確認します。Presentation Server 4.5以降では、これらの設定はターミナルサービスの構成ツールを使用して行ないます。
2. [クライアント設定]ダイアログボックスの以下のチェックボックスがオフになっていることを確認します。
CTX104693 - �Client Printer mapping� and �Client LPT Port mapping� are greyed out in ica-tcp listener
3. 手順1.で[(アカウントの設定を使用)]チェックボックスがオンになっていた場合、ドメインユーザーマネージャの各ユーザーの[ユーザーの構成]ボタン、あるいは[Active Directoryユーザーとコンピュータ]または[ユーザーマネージャ]の[ローカルユーザーとグループ]にある[環境]タブで、[ログオン時、クライアントのプリンタに接続する]チェックボックスがオンになっていることを確認します(Active Directory 2000および2003の場合)。
Active Directory 2008の場合は、サーバーマネージャユーティリティを開いて、[設定]ノードを展開するとユーザーとグループを管理できます。
4. クライアントコンピュータで以下を実行します。
5. 現在のMicrosoft RDPクライアントはプリンタ作成を許可します。RDPがCitrixクライアントネットワークサービスを使用していない場合、テストとしてRDPでログインしていただくことがあります。これは、潜在的なOSや承認の問題がある場合の調査に役立ちます。
6. クライアントコンピュータに、そのオペレーティングシステム用の互換性のある最新ドライバがインストールされていることを確認します。MetaFrameサーバーに、ベースとなるオペレーティングシステム(Windows 2000 Server、Windows Server 2003またはWindows Server 2008)用の互換性のある最新ドライバをインストールします。これは、サーバーコンソール上で「phantom」プリンタをインストールすることによって簡単に行えます。作成されたプリンタは、プリントマネージャから削除することができますが、プリンタを削除してもドライバ本体およびドライバへのレジストリの参照設定は残ります。手順6.では、サーバー上にどのドライバがインストールされているかを確認します。Windows 2000 Server、Windows Server 2003およびWindows Server 2008の場合、プリントフォルダーの空白部分を右クリックして、[サーバーのプロパティ]を選択し[ドライバ]タブをクリックします。
Windows 2000、2003、2008と互換性のあるプリンタドライバは、対応するターミナルサーバーのバージョンと互換性がある必要はありません。
互換性のないドライバをインストールすると、ブルースクリーンエラー(Microsoft TechNet Article ID Q191666、Q249917、およびLexmark ドライバに関する記述を参照)、スプーラのCPUのスパイク、ハングアップ、プリンタジョブの印刷エラー、自動作成プリンタがログオフ時に削除されない(例:自動作成プリンタの定義がプリンタのプロパティの[コメント]ボックスに記述されていない)などの問題が発生する場合があります。
このような問題が発生する場合は、TechNet Article ID Q135406で推奨されている方法に従って、疑いのあるドライバをシステムから削除し、管理コンソール(XenApp詳細構成ユーティリティおよびPresentation Server管理コンソール)を使用して、除外、手動によるプリンタドライバのマッピング、UPDのみを使用するための設定を行なう必要があります。手動によるドライバマッピングの操作が正常に処理が行われるためには、infファイル内の、構文、スペース文字の有無、引用符内での大文字の使用に気を付ける必要があります。さらに、txtまたはinfファイル内の代替プリンタドライバにより、ネイティブでないサポート対象外のドライバに関しては、ICAセッション内で使用可能なプリンタ機能が制限される場合があります。
手動によるドライバマッピングおよび、wtsuprn.infファイルの使用方法についての詳細は、CTX102476 - クライアントプリンタの自動作成で使用されるWTSUPRN.INFファイルのサンプルについてを参照してください。
7. 以下のレジストリキーを照合して、Presentation Serverにインストールされているドライバを確認します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Environments \Windows NT x86\Drivers\Version-1(WinFrame、NT 3.51の場合)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Environments \Windows NT x86\Drivers\Version-2(NT 4.0の場合)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Environments \Windows NT x86\Drivers\Version-3(Windows 2000、Windows 2003/2008の場合)
注:64ビットドライバの場合は以下を確認します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Environments\Windows NTx64\Drivers\キー
また、ただドライバーが存在しているだけで破損している可能性がある場合などは、このプロセスが正しく動作しない場合があります。そのような場合は、以下の手順を実行してください。
a. ドライバを削除します。
b. プリントサービスを再起動します。
c. 再度ドライバを追加します。
8. 管理者アカウントでクライアントプリンタを自動作成できることを確認します。管理者アカウントではクライアントプリンタを自動作成できるのに、通常ユーザーでは自動作成できない場合は、ユーザーの以下のファイルとディレクトリに、少なくとも読み取り、書き込み、実行権限を持っていることを確認します。
%SystemRoot%\System32\spool
%SystemRoot%\System32\printer.inf
注:32ビットクライアントプリンタの自動作成には、クライアントとサーバーの両方が関与します。
ICAクライアントプリンタの自動作成は、ログイン処理中に行われます。MetaFrame for Winows NT Server 4.0, Terminal Server Editionでは、winlogonが直接ctxlogonが呼び出します。XenApp 5.0およびPresetation Server for Windows 2000およびWindows Server 2003では、ctxlogon.exeとctxlogof.exeがctxnotif.dllに置き換わります。winlogon(具体的にはcmstart.exe)がctxnotif.dllを呼び出し、それがctxlogonを呼び出してプリンタへの接続が作成されます。ctxlogonは、特定のログイン処理(プリンタ接続の作成処理など)に対するログオンまたはログオフ通知を処理します。
9. Windows NT Server 4.0, Terminal Server Edition上のMetaFrame 1.xの場合、ユーザーがctxlogon.exeとctxlogoff.exeに読み取り(RX)権限を持っていることを確認します。デフォルトでは、MetaFrameのインストール中に、Everyoneグループに読み取り権限が与えられます。
10. Windows NT Server 4.0, Terminal Server Editionの場合、以下のレジストリエントリが存在することを確認します。
HKEY_LOCAL_Machine/Software/Microsoft/WindowsNT/CurrentVersion/Winlogon
キー名:Userinit
値:CTXLOGON.EXE
ターミナルサービスを有効にしたWindows 2000 ServerおよびWindows Server 2003/2008の場合、以下のレジストリエントリが存在することを確認します。
HKEY_LOCAL_Machine/Software/Microsoft/WindowsNT/CurrentVersion/Winlogon
キー名:AppSetup
値:Cmstart.EXE
注:Cmstart.exeは、セッション内でwfshellが実行されている必要があります。
CTX102823 - 一部のHPプリンタドライバを自動作成しようとするとWFSHELL.exeがクラッシュする
11. MetaFrame XP, Service Pack 2/Feature Release 2では、クライアント側で自動作成されたネットワークプリンタの動作が変更されました。MetaFrame XP, Service Pack 3/ Feature Release 3では、[管理コンソール]の左側のツリー表示の[プリンタの管理]の[プロパティ]を設定して、この動作の切り替えを行います。MetaFrame XP, Service Pack 3/ Feature Release 3の場合は、CTX101829 - Hotfix XE102W065 - For MetaFrame XP 1.0 for Windows 2000 Server - English以降のHotfixが適用されているかどうか確認してください。対応するレジストリが変更されることによって問題が解決されます。
Hotfixはユーザーが望む機能(MetaFrame XP, Feature Release 2サーバーからネットワークプリンターへの直接接続または、ICAクライアントデバイスを通して印刷するクライアントプリンタとして作成されたネットワークプリンタ)を切り替えることができるようにするためのレジストリ変更を取り入れています。
以下の手順に従ってレジストリを設定します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Citrix\ClientPrinterAutoCreate
値の名前:fCreateNetworkPrinter
値の型:DWORD
値:1(クライアントプリンタとして作成されたネットワークプリンタを使用する)
値:0(Feature Release 2の動作を実行する)
この機能が有効な場合、ネットワークプリンタはICAセッションでクライアントプリンタとして作成されます。
Presentation Server 3.0以降で新しいポリシーを作成するには、[印刷]-[クライアントプリンタ]の順に展開して、[可能な場合はネットワークプリントサーバーに直接送信する]または[常にクライアントを介して間接的に送信する]のどちらかを選択します。
12. 印刷設定を無効にするCitrixポリシーが管理コンソールで設定されているかどうか確認します。
13. 管理コンソールでCitrix互換性割り当てまたはドライバに制限が適用されているかどうか確認します。
14. MyCitrix、またはシトリックスカスタマーサービスからMetaFrame XP, Feature Release 3/Service Pack 3 for Windows Server 2003のライセンスを取得しているかどうか確認します。
『XJ103W2K3042 Readme』からの抜粋:
サーバーでWindows Server 2003が動作する場合、Citrix Feature Release 3ライセンスをインストールしないと、クライアントプリンタが自動作成されないという問題がありました。
Windows Server 2003のターミナルサービスでは、プリンタ仮想チャネルがシステムコンテキストで作成される必要があります。そうでない場合、MetaFrameサーバーでプリンタの自動作成コマンドが仮想チャネル経由で発行されないために、この問題が発生します。
このHotfixを適用すると、プリンタ仮想チャネルがシステムコンテキストで作成されるようになります。これにより、Feature Release 3用のライセンスがインストールされてなくても、クライアントプリンタが自動作成されるようになります。[#63348]
15. CTX102785 - NFuseまたはWeb Interfaceで印刷を無効にする方法が適用されているかどうか確認します。
16. Citrix製品では、クライアント名とプリンタドライバ名に基づいてプリンタが自動作成されるので、各クライアントに固有の名前を付けることを推奨します。CTX102656 - クライアント名には固有の名称を使用する。プリンタ名の作成に使用されるアルゴリズムが原因で問題の発生するアプリケーションがあります。この問題は多くの場合名前の文字数に関連しています。同じような問題がCitrix製品以外を使用した環境でMicrosoft共有プリンタの名前を、同等の文字数で作成した場合にも再現されています。アプリケーションは列挙する方法を考慮して変更し、APIのプリンタを使用する必要がある場合があります。マイクロソフトサポート技術情報Q240082を参照してください。
17. Hewlett-Packard社は、家庭向け製品市場を対象としたPPA(Print Performance Architecture)という新しいアーキテクチャを導入していますが、PPAはMicrosoft社のどのオペレーティングシステムでもサポートされていないため、Citrix環境でのPPAのサポートは行わない予定です。詳しくは、以下の文書を参照してください。
• Microsoft Technet Article ID Q153958
• CTX110571 - HP Printers Supported in Citrix Presentation Server Environments
18. 上記の項目をすべて確認した後もまだプリンタが自動作成されない場合は、ドライバ名がクライアント上とサーバー上とで一致していることを確認します。オペレーティングシステムによってドライバ名が微妙に異なる場合があります。ドライバ名が異なる場合は、MetaFrame 1.8サーバー上のctxuprn.infとwtsuprn.inf(%SystemRoot%\System32フォルダ内)、およびPresentation Server またはXenAppの管理コンソールまたはQPrinter.exeコマンドを使用して名前を割り当てる必要があります。
注:wtsuprn.infの使用方法とサンプルファイルについて詳しくは、CTX102476 - クライアントプリンタの自動作成で使用されるWTSUPRN.INFファイルのサンプルについてを参照してください。
注:上記は、Presentation ServerおよびXenAppではサポートされていません。
MetaFrame XPの場合、Citrix管理コンソールまたはQprinter.exeコマンドを使用できます。
印刷アルゴリズム
印刷アルゴリズムでは、以下の順序でチェックが行われます。
1. wtsuprn.inf内の<クライアント名>#<プリンタ名>
2. wtsuprn.inf内の<プリンタ名>
3. wtsprnt.inf内の<クライアント名>#<プリンタ名>
4. wtsprnt.inf内の<プリンタ名>
5. wtsuprn.inf内の<クライアント名>#<クライアントプリンタドライバ名>
6. wtsuprn.inf内の<クライアントプリンタドライバ名>
7. wtsprnt.inf内の<クライアント名>#<クライアントプリンタドライバ名>
8. wtsprnt.inf内の<クライアントプリンタドライバ名>
9. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet \Control\Print\Environments\Windows NT x86\Drivers\Version-2およびVersion-3内の<クライアントプリンタドライバ名>
10. ntprint.inf内の<クライアントプリンタドライバ名>。一致する情報が見つかると、プリンタ作成時にドライバ名が新しい名前に置き換えられます。
クライアントプリンタ処理では、まずレジストリがチェックされます。ドライバがインストールされている場合は(レジストリに対応するエントリが存在します)、プリンタは問題なく作成されます。レジストリにそのドライバに対応するエントリが存在しなかった場合は、ntprint.infを参照し、ベースとなるサーバーのインストール環境でそのドライバが使用可能かどうかが確認されます。それが既知のドライバでありインストールが(CDまたはネットワーク経由で)可能な場合は、ドライバがそのコンピュータに自動的にインストールされ、プリンタの作成処理が先に進みます。
11. ユニバーサルプリンタドライバ(UPD)が選択されている場合は、Citrix管理コンソールでどのようにプリンタ管理を設定しているかによって動作が異なります。デフォルト設定の場合は、プリンタの初回作成時に、ネイティブドライバを使用して上記のアルゴリズムでUPDが作成されます。Citrix管理コンソールでドライバを削除する場合も、同様となります。詳細はCTX102583 - Citrixユニバーサルプリンタドライバ(UPD)のトラブルシューティングと解説およびCTX114707 – プリンタドライバのマッピング処理の詳細を参照してください。
処理の概要
この処理は、クライアント側で開始されます。wfica32は、ローカルにAPIを呼び出してクライアントプリンタの一覧を取得し、その情報をPresentation Serverに送信します。これらのクライアントプリンタは、クライアントポート上で定義されたローカルプリンタの場合と、ローカルに定義されたネットワークプリンタの場合とがあります。プリンタの自動作成にどのドライバを使用するかは、プリンタ割り当てファイル(wtsuprn.inf)を参照して決められます。オペレーティングシステムでそのドライバがntprint.infファイルを経て使用可能である場合は、そのドライバがPresentation Server上にインストールされます。
タイミング
プリンタの自動作成が行われるタイミングは、公開アプリケーションに接続している場合とサーバーのデスクトップに直接接続している場合とで異なります。
ユーザーが公開アプリケーションに接続している場合、プリンタの自動作成処理はアプリケーションが実行時に「通常使うプリンタ」を見つけられるように、同期的に行われます。これは「通常使うプリンタ」が定義されていないとロードに失敗するアプリケーションがあるため、このような仕様になっています。
ユーザーがサーバーのデスクトップに接続している場合、プリンタはログオン処理を高速化するために非同期的に作成されます。
同期処理は、MetaFrame XP以降のCitrix製品の個々のアプリケーションのプロパティで[クライアントオプション]をクリックして有効にできます。[印刷]セクションで[プリンタの自動作成を待たずにアプリケーションを起動する]チェックボックスをオンにします。
追加情報
CTX102017 – ログオン処理が低速な場合のトラブルシューティング
関連情報
この資料は米国のCitrix Knowledge Baseで提供している情報をもとに作成したものです。
Document ID: CTX681954
Troubleshooting Citrix ICA Printer Autocreation