山﨑 実久
SQL Developer Support Engineer
以前、本ブログの “Reporting Services のレポートで印刷を行うと「クライアントの印刷コントロールを読み込めません。」のエラーが発生する” の記事で、Reporting Services のレポートで印刷時の下記エラーの発生パターンおよび回避方法をご案内しました。
--------
クライアントの印刷コントロールを読み込めません。
--------
“Reporting Services のレポートで印刷を行うと「クライアントの印刷コントロールを読み込めません。」のエラーが発生する” の記事で、上記エラーが発生するパターンの1つとして、Reporting Services の印刷時、RSClientPrint という ActiveX コントロールがクライアントにインストールできないため、このエラーが発生する場合があることをお伝えしました。
本 blog では、SQL Server 2008 以降の環境において、RSClientPrint という ActiveX コントロールがクライアントにインストールできない場合について、下記 2 点を補足説明します。
・RSClientPrint の ActiveX コントロールがクライアントにインストールされているか確認する方法
・対処方法
[RSClientPrint の ActiveX コントロールがクライアントにインストールされているか確認する方法]
事象が発生するクライアントマシンにて C:\Windows\Downloaded Program Files\ 配下の RSClientPrint.dll のファイルが存在しているか否かで、判断できます。
RSClientPrint.dll のファイルが存在しない場合、RSClientPrint の ActiveX コントロールがクライアントにインストールされていないと判断できます。その場合、以下の対処方法に記載の内容を確認します。
[インストールできない原因についての確認方法]
事象が発生するクライアントマシンにて RSClinetPrint ActiveX コントロールをインストールできない一般的な原因は以下となります。以下 2 点に該当しないか確認します。
1. 印刷を行っているユーザーの権限が不足している。(PowerUser 以上の権限が必要です。)
2. IE の セキュリティ設定で、ActiveX コントロールのダウンロード等が無効となっている。 ※
※ 2 について、IE の設定の確認方法の詳細は以下となります。
事象が発生するクライアントマシンにて確認手順
------------------------------------------------------
[インターネットのオプション] - [セキュリティ] の下記 4 つの項目について、それぞれ以降に記載のURL を参照いただき、ActiveX に関する設定を確認します。
[インターネット]
[ローカルイントラネット]
[信頼済みサイト]
[制限付きサイト]
+ ActiveX に関する設定を紹介しているサイト
Internet Explorer の ActiveX に関する設定を調整する
http://windows.microsoft.com/ja-jp/windows/help/genuine/ie-activex
上記、1, 2 を確認後、該当しない場合は、以下を事象が発生するクライアントマシンにて実施ください。以下の手順は SQL Server 2008の既定インスタンスについての例となります。
SQL Server 2008 以降の場合は、 1) の cab ファイルの場所を SQL Server のバージョンに合わせ変更します。
例 ) 対処方法
----------------
1) RSClientPrint の cab ファイルの中身をクライアントの任意のディレクトリ (例:c:\temp) にコピーし展開します。
RSClientPrint の cab は、既定では、対象の SQL Server 稼働マシン上の、以下のフォルダ配下にあります。
C:\Program Files\Microsoft SQL Server\MSRS10.MSSQLSERVER\Reporting Services\ReportServer\bin
SQL Server 2008 Reporting Servicesの RSClientPrint の cab は以下の 3 種類があります。
・RSClientPrint-ia64.cab
・RSClientPrint-x64.cab
・RSClientPrint-x86.cab
これは、レポートにアクセスを行うブラウザによって使用する cab が異なります。
32bit 環境の場合は「RSClientPrint-x86.cab」をコピーし展開します。
また、x64 環境であっても、IE を 32bit モードで起動する場合には、上記と同様に「RSClientPrint-x86.cab」をコピーし展開します。
2) 印刷を行うクライアントマシン上にて、管理者権限でコマンド プロンプト(CMD.EXE) を起動して、以下のコマンドを入力します。
Regsvr32 c:\temp\rsclientprint.dll
-> 成功した場合、以下のメッセージが表示されます。
c:\temp\rsclientprint.dll の DLLRegisterServer は成功しました。
※ 1) で展開した cab ファイルの中身のうち、「rsclientprint.dll」を指定します。
※ x64、IA64の cab を使用する場合には、下記のように「rsclientprint64.dll」を指定します。
Regsvr32 c:\temp\rsclientprint64.dll
3) レポートに接続し、印刷ボタンをクリックし印刷可能か確認します。
以上となります。参考になりましたら幸いです。