過去のナビゲーションリンクのスキップSecure Global Desktop 4.40 管理者ガイド > 印刷 > SGD を使って表示したアプリケーションからユーザーが印刷できない場合

SGD を使って表示したアプリケーションからユーザーが印刷できない場合

次のチェックリストに従ってください。

それでも問題を解決できない場合は、そのあとの「その他の問題を診断する」の手順に従ってください。

Microsoft Windows 2000 または 2003 でのプリンタ設定の問題については、このトピックを参照してください。

クライアントデバイス

確認項目 説明
そのクライアントデバイスまたはプリンタタイプでの印刷は SGD でサポートされていますか。 Webtop の「印刷中」バーのプリンタアイコンに赤い×印が付き、「利用可能なクライアントプリンタなし」というメッセージが表示されているかどうかを確認します。これは、このクライアントデバイスまたはプリンタタイプでの印刷が SGD でサポートされていないか、クライアントプリンタの作成中にエラーが発生したことを意味します。
クライアントデバイスで印刷が一時停止されていませんか。 印刷が一時停止されていないことを確認します。プリンタの一時停止中アイコンが表示されていないことを確認してください。

tarantella webtopsession list コマンドを使用して、ユーザーが印刷を一時停止しているかどうかを確認します。

プリンタが正しく設定されていますか。 プリンタが正しく設定されていることを確認するために、クライアントデバイスの Web ブラウザから Web ページをプリンタに印刷するなどの操作をしてみてください。アプリケーションサーバーによっては、一部の印刷ジョブはクライアントデバイスのデフォルトプリンタにしか印刷できない場合があります。

UNIX、Linux、または Mac OS X システムのクライアントデバイスに印刷する場合は、これらのクライアントタイプ用の印刷を設定したことを確認してください。

PDF 印刷を行う場合、クライアントに PDF ビューアがインストールされていますか。 Secure Global Desktop PDF 印刷を使用するには、クライアントデバイスに PDF ビューアがインストールされている必要があります。

サポートされているビューアまたはユーザーのお気に入りのビューアがクライアントにインストールされていること、およびそのビューアが実行可能であることを確認します。

UNIX、Linux、または Mac OS X システムのクライアントデバイス上で、ユーザーが /tmp ディレクトリに対する読み取り/書き込みアクセス権を持っていることを確認します。PDF ビューアが Adobe Reader (acroread) の場合、ビューアが -openInNewWindow コマンドオプションをサポートしていることを確認します。PDF ビューアが Preview app (/Applications/preview.app) の場合、ビューアが open -a コマンドオプションをサポートしていることを確認します。

ビューアがインストールされていないか、ビューアにアクセスできない場合、ユーザーは Secure Global Desktop PDF プリンタを使用できます。

UNIX または Linux システムのアプリケーションサーバーから PDF 印刷を行う場合、印刷ジョブは適切な形式になっていますか。 ユーザーの PDF ビューアが起動するとファイル形式エラーが表示される場合は、UNIX または Linux アプリケーションサーバーで印刷中のファイルが Postscript であることを確認してください。
そのユーザーは必要なレジストリ権限を持っていますか。 Microsoft Windows クライアントデバイスを使用するには、HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\RNG\Seed レジストリキーへの書き込みアクセス権と、レジストリの残りの部分への読み取りアクセス権が必要です。

このアクセス権は、印刷用の Windows API のいくつかで必要になります。

アプリケーションサーバー

確認項目 説明
アプリケーションサーバー上にプリンタが設定されていますか。 ユーザーが印刷できるようにするには、アプリケーションサーバー上での SGD プリンタの設定が必要な場合があります。
プリンタが Windows アプリケーションセッションで作成されていますか。 Windows ターミナルサービスを使用してアクセスした Microsoft Windows 2000 または 2003 アプリケーションサーバーから印刷しようとしたユーザーには、そのユーザーのプリンタが自動的に設定されます。 そのようにならない場合は、アプリケーションサーバーの System イベントログで次のエラーを確認してください。
  • Event ID: 1111
    Description: Driver drivername required for printer printertype is unknown. Contact the administrator to install the driver before you log in again.
  • Event ID: 1105
    Description: Printer security information for the printername / clientcomputername /Session number could not be set
  • Event ID: 1106
    Description: The printer could not be installed.

これらのエラーは、クライアントプリンタのプリンタドライバがアプリケーションサーバーでサポートされていない可能性があることを示しています。このプリンタドライバをアプリケーションサーバーにインストールするか、または他のプリンタドライバのサポート方法について「Microsoft Windows 2000/2003 アプリケーションサーバーからの印刷」を参照してください。ワイルドカードを使用して複数のプリンタドライバ名をサポートする方法も説明されています。

default.printerinfo.txt (またはユーザーの $HOME/.tarantella/printerinfo.txt) 内のプリンタドライバ名がアプリケーションサーバー上のドライバ名と一致していることも確認することをお勧めします。

それでも問題を解決できない場合は、詳細について Microsoft サポート技術情報の記事 Q239088 を参照してください。

アプリケーションが正しいプリンタに印刷していますか。
  • アプリケーションは、管理者が設定したプリンタキューに印刷する必要があります。UNIX または Linux アプリケーションサーバーの場合、prtinstall.en.sh スクリプトにより tta_printer というプリンタキューがデフォルトで作成されます。
  • UNIX または Linux システムのアプリケーションサーバーの場合、アプリケーションは、prtinstall.en.sh によってインストールされた lp 置換スクリプトか lpr 置換スクリプトを使用して印刷する必要があります。SGD ログインスクリプトは、環境変数 PATH を設定して、置換スクリプトをシステムスクリプトよりも優先するようにします。アプリケーションが完全パス名 (たとえば、/usr/bin/lp) を使用している場合、または PATH 自体を変更している場合、アプリケーションを再設定して、/opt/tarantella/bin/lp/opt/tarantella/bin/lpr を使用してください。
アプリケーションサーバー上でアカウントが共有されていますか。 同時に複数のユーザーが同じユーザー名で同じアプリケーションサーバーにログインすると、SGD はどのユーザーが印刷ジョブを所有しているかを区別できなくなり、印刷ジョブを破棄することがあります (ログを参照)。この状態は、UNIX または Linux システムのアプリケーションサーバーで、prtinstall.en.sh スクリプトが実行済みでない場合に発生します。この状態を解決するには、prtinstall.en.sh スクリプトを実行してプリンタを設定します。

tarantella print コマンドを使用して、アプリケーションサーバーの印刷システムから送信された印刷ジョブが SGD 印刷キューに届いていることを確認してください。

サーバーの Windows 名は DNS 名と同じですか。 Microsoft Windows NT サーバーの DNS 名が naples.indigo-insurance.com で、NetBIOS 名が VESUVIUS の場合、このサーバーの印刷ジョブに含まれるホスト識別子は naples ではなく VESUVIUS になるので、この印刷ジョブは失敗します。

/opt/tarantella/etc/data ディレクトリの hostnamemap.txt ファイルを編集することにより、この問題を回避できます。このファイルでホスト名と DNS 名を対応付けることができます。マッピングの作成方法については、ファイルに説明されています。

Secure Global Desktop PDF 印刷を使用する場合は、すべての Microsoft Windows 2000 または 2003 アプリケーションサーバーに同じ PostScript プリンタドライバがインストールされていますか。 Secure Global Desktop PDF 印刷を使用するには、すべての Microsoft Windows 2000 または 2003 アプリケーションサーバーに同じ PostScript プリンタドライバをインストールする必要があります。SGD Administration Console で、ドライバ名が、「グローバル設定」»「印刷」タブ、あるいはユーザープロファイルまたは親オブジェクトの「印刷」タブにある「Postscript プリンタドライバ」フィールドで設定された名前に一致していることを確認してください。名前が一致していない場合は、アプリケーションサーバーの System イベントログにエラーが表示されます。

SGD サーバー

確認項目 説明
アレイ全体で印刷が一時停止中または無効になっていませんか。 tarantella print status コマンドを使用して、アレイの印刷が一時停止中または無効になっているかどうかを確認します。必要に応じて、tarantella print start コマンドまたは tarantella print resume コマンドを使用して印刷を有効にします。
Microsoft Windows クライアントデバイス上で印刷を行う場合、クライアントプリンタが無効になっていませんか。 SGD Administration Console で、「グローバル設定」»「印刷」タブ、あるいはユーザープロファイルまたは親オブジェクトの「印刷」タブを参照して、ユーザーがすべてのクライアントプリンタにアクセスできるのか、デフォルトのクライアントプリンタにのみアクセスできるのか、クライアントプリンタに一切アクセスできないのかを確認します。PDF 印刷を行う場合は、Secure Global Desktop PDF プリンタが有効になっていることを確認します。
アレイの設定が変更されていますか。 次の状況では、印刷は再設定されません。
  • アレイを作成したとき
  • 新規のセカンダリサーバーをアレイに追加したとき
  • アレイのプライマリサーバーを変更したとき

アレイを変更した場合は、印刷ジョブを正しいプリンタに送るために、印刷の再設定が必要になることがあります。再設定する必要があるかどうかは、アプリケーションサーバーと変更の内容によって決まります

PDF 印刷を行う場合、Ghostscript を SGD ホスト上で使用できますか。 Secure Global DesktopPDF 印刷では、Ghostscript を使用して印刷ジョブが PDF ファイルに変換されます。SGD では、印刷ジョブを PostScript から PCL に変換するためにも、Ghostscript を使用します。

/opt/tarantella/var/log/print.log"can't find ps2pdf""Consider obtaining Ghostscript from http://www.ghostscript.com" などのメッセージが含まれている場合は、Ghostscript がインストールされていないか、標準以外の場所にインストールされています。

Ghostscript が次のいずれかの場所にインストールされている場合、SGD のインストール時に Secure Global Desktop セットアップ によってその Ghostscript が自動的に検出されます。

  • /usr/local/bin
  • /usr/bin
  • /usr/sfw/bin
  • /opt/sfw/bin
  • /bin
  • /usr/sbin
  • /sbin
  • /usr/lbin

Ghostscript がこれ以外の場所にインストールされている場合は、SGD に Ghostscript --gsbindir オプションで指定して、prtinstall.en.sh スクリプトを実行する必要があります。

複数バージョンの Ghostscript がインストールされている場合は、どのバージョンを使用するかを SGD に通知する --gsbindir オプションを指定して prtinstall.en.sh スクリプトを実行する必要があります。

Ghostscript がインストールされていない場合、それをインストールしたあとで prtinstall.en.sh スクリプトを実行する必要があります。

その他の問題を診断する

上記のチェックリストで問題を解決できない場合は、次の手順に従ってください。

1. SGD サーバーから印刷できますか。

X アプリケーションまたは文字型アプリケーションを、SGD サーバー上で稼働してシェルウィンドウ (たとえば xterm) を表示するように設定し、Webtop から起動します。/opt/tarantella/bin/scripts/printtestpage.en.sh を実行して、テストページを印刷してみます。テストページが印刷されない場合、/opt/tarantella/bin/scripts/printtestpage.en.sh --direct を代わりに実行して、UNIX または Linux システムのスプーラを使用しないようにします。

確認項目 説明
1 番目でテストページが印刷された場合 この問題は、アプリケーションサーバーから SGD サーバーへの印刷ジョブの移動に関連しています。

UNIX または Linux システムのアプリケーションサーバーの場合、手順 3 に進みます。

Windows ターミナルサービスの場合、手順 5 に進みます。

2 番目でテストページが印刷された場合 この問題は、SGD ホスト上の UNIX または Linux システムの印刷システムに関連しています。使用している UNIX または Linux システムのマニュアルを参照し、問題を調査して解決してください。その後、もう一度印刷してみます。
どちらの方法でもテストページが印刷されない場合 この問題は、SGD サーバーに関連しています。手順 2 に進みます。

2. SGD プリンタキューが SGD サーバーにインストールされていますか。

ホスト上のプリンタのリストに、tta_printer のエントリがあることを確認してください。プリンタのリストの表示方法については、使用している UNIX または Linux システムのマニュアルを参照してください。一部のシステムでは、lpstat -t です。使用しているシステムに /etc/printcap ファイルがある場合、このファイルにはプレーンテキスト形式でプリンタのリストが記載されています。

確認項目 説明
tta_printer が存在する場合 この問題は、SGD サーバーからクライアントデバイスへの印刷ジョブの移動に関連しています。手順 7 に進みます。
tta_printer が存在しない場合 SGD サーバー上で prtinstall.en.sh スクリプトを実行します。その後、もう一度印刷してみます。

3. 印刷ジョブが UNIX または Linux システムのアプリケーションサーバーから送信されていますか。

UNIX または Linux システムのアプリケーションサーバー上でシェルウィンドウを表示するよう設定されているアプリケーションオブジェクトを使って、容量の小さいテキストファイルを SGD プリンタに印刷してみます。たとえば、lp -d tta_printer /etc/hosts コマンドを入力します。

確認項目 説明
lp コマンドがエラーメッセージを返す場合 UNIX または Linux プラットフォームのアプリケーションサーバーが SGD を使って印刷するよう設定されているか確認します。prtinstall.en.sh スクリプトの実行が必要な場合があります。
lp コマンドが印刷ジョブ ID を返す場合 これは、SGD の印刷は正しく設定されているが、UNIX または Linux システムのどこかに問題がある可能性を示しています。手順 4 に進みます。

4. 印刷ジョブが UNIX または Linux システムのスプールディレクトリに存在しますか。

印刷スプールディレクトリは、UNIX または Linux システムによって異なります。詳細については、使用している UNIX または Linux システムのマニュアルを参照してください。

確認項目 説明
ジョブが存在する場合 アプリケーションサーバーと SGD サーバーの間のネットワークに問題があると考えられます。手順 6 に進みます。
ジョブが存在しない場合 UNIX または Linux システムの LPD 印刷の設定を調べます。たとえば、/etc/hosts.equiv ファイルまたは /etc/hosts.lpd ファイルに適切なエントリがあることと、/etc/hosts.equiv.deny など拒否ファイルがないことを確認します。

lpd デーモンが稼働し、待機していることを確認します。たとえば、次のコマンドを使用します。

過去のコマンド構文またはプログラムコードのスキップ# ps -ef | grep lpd
# netstat -a | grep printer

もう一度印刷してみます。

5. 印刷ジョブが Windows ターミナルサービスのアプリケーションサーバーから送信されていますか。

アプリケーションサーバー上の印刷キューを調べます。ヘルプが必要な場合は、使用しているシステムのマニュアルを参照してください。

確認項目 説明
印刷ジョブがアプリケーションサーバーから送信されている場合 アプリケーションサーバーと SGD サーバーの間のネットワークに問題があると考えられます。手順 6 に進みます。
印刷ジョブがアプリケーションサーバーから送信されていない場合
  • SGD プリンタの設定を調べます。
  • アプリケーションサーバーから SGD サーバーに ping および telnet できるか調べます。
  • イベントログにエラーが記録されているかどうかを調べます。
  • コマンドプロンプトで、lpr -s server -p tta_printer filename コマンドを使用して印刷してください。これが機能する場合、アプリケーションサーバー上のプリンタドライバがインストールされていないか、正しく設定されていないものと考えられます。

6. 印刷ジョブが SGD サーバーに届いていますか。

SGD サーバー上の SGD 印刷スプールディレクトリ/opt/tarantella/var/spool/opt/tarantella/var/print/queue を調べます。

確認項目 説明
印刷ジョブが存在する場合
  • アプリケーションオブジェクト内で完全修飾 DNS 名を使用しており、名前解決が正確に機能しているかどうかを調べます。
  • 詳細については、印刷ログファイルを調べます。手順 7 に進みます。
印刷ジョブが存在しない場合
  • UNIX または Linux システムの LPD 印刷の設定を調べます。

    たとえば、/etc/hosts.equiv ファイルまたは /etc/hosts.lpd ファイルに適切なエントリがあることと、/etc/hosts.equiv.deny など拒否ファイルがないことを確認します。

    lpd デーモンが稼働し、待機していることを確認します。たとえば、次のコマンドを使用します。

    過去のコマンド構文またはプログラムコードのスキップ# ps -ef | grep lpd
    # netstat -t | grep lpd
  • アプリケーションサーバーから SGD サーバーに ping および telnet できるか調べます。
  • Windows ターミナルサービスの場合、コマンドプロンプトで、lpr -s server -p tta_printer filename コマンドを使用して印刷してください。これが機能する場合、アプリケーションサーバー上のプリンタドライバがインストールされていないか、正しく設定されていないものと考えられます。

7. 印刷ログファイルの調査

tarantella query コマンドを使って、アレイ全体のログを調査できます。ログファイルは、アレイの各メンバー上の /opt/tarantella/var/log に格納されています。

印刷ログファイルが空の場合、「ログフィルタ」を編集して、印刷メッセージのログを出力します。SGD Administration Console で、「グローバル設定」»「監視」タブをクリックし、次のログフィルタを追加します。

過去のコマンド構文またはプログラムコードのスキップserver/printing/*:print%%PID%%.log
server/printing/*:print%%PID%%.jsl

ログにユーザー名マッピングに関する問題を示すメッセージが含まれている場合、アプリケーションサーバー上で共有アカウントを使用している可能性があります。上記の「アプリケーションサーバー上でアカウントが共有されていますか。」を参照してください。

関連トピック