[タイトル]
「プリンタの自動作成に失敗しました。理由: AddPrinter()がステータス0x704で失敗しました。」(イベントID:1116)というイベントが記録される
[現象]
ユーザーのログオン時にクライアントプリンタが自動作成されません。イベントログには、イベントID:1116、ソース:MetaFrame Eventsのイベントが記録されます。このイベントには、「理由: AddPrinter()がステータス0x704で失敗しました。」というメッセージが含まれています。
16進数の「704」を10進数に変換した値を指定してnet helpmsgコマンドを実行しても、追加情報は表示されません。
C:\Documents and Settings\Administrator.FTLRLAB>net helpmsg 1796
指定されたポートが不明です。
クライアントネットワークに手動でプリンタを追加することはできますが、そのプリンタにはアクセスできません。
また、Hotfix Rollup PackまたはHotfixをインストールしたあとに、プリンタの自動作成に失敗したりイベントログに同じメッセージが記録されたりすることがあります。その場合は、[原因2]および[解決方法2]を参照してください。
[原因1]
この現象は、クライアントプリンタポートモニタに不適切なDLLが設定されている場合に発生します。Presentation Server 4.0以降では、このファイルはcpmon.dllになります。このファイルは、サーバー上のレジストリに示されています。Presentation Serverを古いバージョンからアップグレードしたサーバーでは、この設定が正しく更新されずにcpmmon.dllのままになっている場合があります。
[原因2]
この問題は、ctxprn.dllのバージョンの不一致によって発生します。カスタムアプリケーションに固有の問題を解決するには、%programfiles%\citrix\system32から%systemroot%\system32へctxprin.dllをコピーします。
[解決方法1]
注:レジストリエディタの使用を誤ると、深刻な問題が発生する可能性があり、Windowsの再インストールが必要になることがあります。レジストリエディタは自己の責任と判断の範囲でご使用ください。
レジストリの編集方法については、レジストリエディタ(Regedit.exe)のヘルプの「キーと値の変更」、またはRegedt32.exeのヘルプの「レジストリ情報の追加と削除」および「レジストリ情報の編集」を参照してください。レジストリを編集する前に、レジストリファイルのバックアップを作成してください。Windows NTの場合は、システム修復ディスク(ERD)を更新する必要があります。
以下のレジストリ値を変更します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Monitors\Client Printer Port
値の名前:Driver
値のデータ:cpmon.dll
[解決方法2]
Hotfix Rollup PackまたはHotfixがインストールすると、デフォルトの格納先にあるファイルをアップデートされます。しかし、他の格納先からコピーされたファイルはHotfix Rollup PackまたはHotfixによってアップデートされません。
ctxprn.dllのデフォルトの格納先は%program files%\citrix\system32ですが、多くのシステムでは、%systemroot%\system32はシステム環境変数PATHの%programfiles%\citrix\system32よりも優先されます。そのため、%systemroot%\system32に格納されている古いctxprn.dllファイルが選択され、プリンタの自動作成に失敗します。
この問題を回避するには、%systemroot%\system32に追加されているctxprn.dllのコピーを削除します。
[追加情報]
詳しくは、CTX109092 – Citrix Presentation Server 4.0のプリンタ関連の問題のトラブルシューティングを参照してください。
[関連情報]
この資料は米国のCitrix Knowledge Baseで提供している情報をもとに作成したものです。
Document ID: CTX107445
Event ID 1116 Printer autocreation failure. Reason: AddPrinter() failed with status 0x704