あいさつ、%habrausername%!
今日は、Microsoftターミナルサーバーでの印刷の問題を解決した経験を共有したいと思います。
カットの下の詳細。
イントロの代わりに
確かに、Windows、特にターミナルサーバーで作業するほとんどすべてのシステム管理者は、印刷の問題に直面していました。
電話が破れ、誰もが同じ問題を抱えています:「印刷をクリックします-何も起こりません!」。 ログを見て、次の図を確認します。

おなじみですか? 詳細、なし-推測、紳士、管理者! インターネット上のフォーラムには、このトピックに関する質問が多数あり、完全な構造化された回答はほとんどありません。 さて、すべてのソリューションを一緒に積み上げてみましょう。
理由と解決策
では、この状況の原因は何でしょうか? これらの状況のほとんどは、サーバーにインストールされているドライバーが原因です。
- クライアントとサーバーのドライバーは同一でなければならないことに注意してください
- ドライバーの分離がオンになっていることを確認してください
- サーバー上のすべてのドライバーを削除し、TS Easy Printを使用してみてください
- サードパーティのソリューションを試す
そして、すべてのポイントについてさらに詳しく説明します。 まず、ターミナルサーバーに「印刷およびドキュメントサービス」の役割をインストールします。

これにより、システムにインストールされているドライバーとプリンターを便利に管理できます。
同一のドライバー
特別な話はないと思います。 プリンターの製造元の公式ページからドライバーを取得する必要があることを覚えておく価値があります。 もう1つ、PCL5が最も安定して動作します。 PCL5とPCL6を選択できる場合は、PCL5(それぞれサーバーとクライアント)をインストールする必要があります。
ドライバーの分離
Windows 2008では、プリンタードライバーを分離する優れた機能が導入されました。 現在、プリンタードライバーはSpoolsv.exeではなく、特別なプロセス
PrintIsolationHost.exeによって読み込まれます。 プリンタードライバーが
クラッシュすると 、
PrintIsolationHost.exeの 1つのインスタンスのみが
クラッシュし、プリントマネージャーサービス自体が動作し続けます。これは、ご存知のとおり、ユーザーの気分に大きく影響します;)
この機能を有効にするには、ローカルグループポリシーエディター(
gpedit.msc )を開き、「コンピューター設定->管理用テンプレート->プリンター」のパスをたどる必要があります。 次のアイテムを見つけて含めます。
- 分離されたプロセスでプリンタードライバーを実行する
- 印刷ドライバーによって割り当てられた印刷ドライバーのランタイム互換性パラメーターを上書きする
次のようになります。

TSイージープリント
どうやら、システム管理者の嘆きに最後に留意したため、Microsoftは、このために
クラッシュするターミナルサーバーと
spoolsv.exeに動物園ドライバーを配置する必要があると判断しました。 その結果、
TS Easy Printテクノロジーが誕生しました。 主な機能は、サーバー上の各プリンターのドライバーをインストールする必要がないことです-代わりに、統合された
リモートデスクトップEasy Printドライバーを代わりに使用するため、スプーラーの落下の問題を回避できます-すべての印刷操作がクライアントのコンピューターで実行されるためです。
TS Easy Printターミナルサーバーで使用するものを明示的に決定するには、次のパスに沿ってローカルグループポリシーエディター(
gpedit.msc )に再度アクセスする必要があります。「コンピューター設定->管理用テンプレート-> Windowsコンポーネント->サービスリモートデスクトップ->リモートデスクトップセッションホスト->プリンターリダイレクト」。 含めるべき次の点に関心があります。
- 最初にリモートデスクトップEasy Printプリンタードライバーを使用する
- デフォルトのクライアントプリンターのみをリダイレクトする
クライアントに端末にデフォルトのプリンターのみを持たせたい場合は、2番目の項目が必要です。

次に、不要なプリンタードライバーからサーバーをクリーンアップする必要があります。 これは、「印刷およびドキュメントサービス」の役割のマネージャーで実行できます。
ドライバーを慎重に取り外してください! リモートデスクトップイージープリントやMicrosoft XPSドキュメントライタなどを存続させる必要があります。 クライアントへの印刷物の転送を担当します。
次に、クライアントの要件に移りましょう。 それらの2つだけがあります-6.1以上のRDPプロトコルバージョンの使用と.NET Framework 3.0 Service Pack 1(SP1)。 それ以上は必要ありません。
サードパーティのソリューション
たとえば、
ScrewDrivers (
site )などのソフトウェアは、スプーラーの落下の問題を取り除くために呼び出されます。 クライアントサーバーアーキテクチャを提供します。
ScrewDriversサーバーは、ターミナルセッションで印刷を使用する予定のサーバーにインストールする必要があるコンポーネントです。 ScrewDriversクライアントは、ワークステーションにインストールする必要があります。 このコンポーネントにより、ユーザーのローカルプリンターに対応する仮想プリンターをターミナルサーバー上に作成できます。
一般に、Easy Printに似ていますが、無料ではありません(ただし、薬があります;)。
おわりに
これで私は休暇を取りたいです。 おそらく情報は完全ではありません-追加情報を聞いてうれしいです。 これが誰かが数時間の面倒を避けるのに役立つことを願っています;)
頑張って