2012年10月21日

複数のプリンターの中から、開いているプリンターへ自動的に振り分ける設定を試みた。「デバイスとプリンター」画面の変化にあれっ?芸が細かい

設定環境:Windows Server 2008 R2
複数のプリンターから開いているところを選んで自動的に振り分ける機能を「プリンタープール」「印刷プール」と呼びます。社内のプリンターの利用頻度を均すために、このプリンタープールの設定を試してみました。

複数のポートを設定した論理プリンター基本の設定は簡単。
  1. 「デバイスとプリンター」から [プリンターの追加] をクリック。
  2. 出力先の物理プリンターを 1つ選択して論理プリンターを追加する。 ここでは画面キャプチャー用に "Center1$" という名前にしています。
  3. そのプロパティを開いて、[ポート] から [プリンタープールを有効にする] にチェック。
  4. さらに、出力先にしたい複数の物理プリンターのポートにチェックをつける。

デバイスとプリンターさて、これだけの設定ではなかなか複数の物理プリンターに振り分けられず 1台に集中してしまいました。 そこで、設定を少しずつ変えて "Center1$", "Center2$", "Center3$" という 3つの論理プリンターを追加しました。 ところが... デバイスとプリンターの画面を改めて見ると "Center1$" しかありません。
(お見せできる範囲の都合上他をモザイクにしていますが、"Center2$", "Center3$" はないのです。)

同じ構成のプリンタープールを設定したプリンターが複数ある場合のコンテキストメニュー探したあげく、仕方なしに "Center1$" を右クリックしたところ、各メニューに見慣れない右向き矢印 (黒三角) が。 そこを辿ると、なんと "Center1$", "Center2$", "Center3$" が並んでいます。 こんなところに隠れていたのですね。
選択するポートを変更すると、別の論理プリンターとして表示されるようになるので、[印刷するポート] の構成が同じことがまとめて表示される条件の 1つのようです。

ところで「なかなか複数の物理プリンターに振り分けられず」という課題について。
スプールに残っていると振り分けることが分かったので、「積極的にスプールに溜まるようにすれば良いだろう」と判断し、次のように設定してみました。
既定の設定に比べると振り分けが行われることが確認できました。
(検証中です)

プリンターのプロパティ[詳細設定]論理プリンターのプロパティの [詳細設定] から
  • [全ページ分のデータをスプールしてから、印刷データをプリンターに送る] にチェック。
  • [スプールされたドキュメントを最初に印刷する] のチェックを外す。


Microsoft Technet から参考にしたサイトを 2つ紹介します。

後者のリンク先に、まだ理解しがたいことが 1つ書かれています。
「最も高速なプリンタが接続されたポートを最初に追加すると...最も高速に印刷できるプリンタにドキュメントが送られます。」
何をもって "高速" というのか。
私は同じ機種のプリンターを複数台接続しようとしています。
この場合、同じスピードのプリンターが接続されていると判断されるのか、機種とは別の要因で 1台が高速と見なされるのか?

もうひとつ。
面白いことが書かれています。
「どのプリンタによってドキュメントが印刷されるかがわからないため、プール内のすべてのプリンタは同じ場所に配置します。」
札幌・東京・大阪・福岡、たとえば 4拠点のプリンターをプリンタープールの設定で 1つの論理プリンターにまとめられます。
プリントするたびにどこに飛ぶか分からないので、プリンターを1個所に置きましょう。ということですね。
オフィス内でも、右の端と左の端に 2台のプリンターを置いてプリンタープールの設定を行ったら、確実にクレームでしょうね。。。

※ 文章内に "プリンター" と "プリンタ" が混在しています。"プリンター" を使用することにしていますが、用語や参照先に合わせて一部 "プリンタ" と記述しています。
※ 本文中には検証中の事柄が含まれています。
今日の気分 (._.)
posted by 中田智玄 at 22:22 | Comment(3) | TrackBack(0) | ハードウェア | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
Windowsのドライバは、プリンターから印刷速度を取得するので、それを見てるのだと思います。
プリンターが正しい速度を報告するかどうかは分かりませんが。
Posted by 横山哲也 at 2012年10月21日 22:40
意味を取り違えているかと。文章を補足修正するなら・・・
「論理プリンタは利用できるポートを検査し、追加された順番でポートにドキュメントを送ります。もし、あなたが最も"好きな"プリンタの接続されたポートを最初に追加すると...最も"好きな"プリンタにドキュメントが送られます。」
Posted by 通りすがり at 2012年10月26日 18:41
横山さん、アドバイスをありがとうございます。
DeviceCapabilities 関数で、プリンターデバイスドライバーの速度を取得できますね。
自分のためにキーワードをメモしておきます。
・デバイスの能力を指定する引数 fwCapability の値として、DC_PRINTRATEPPM を指定する。 (1分あたりのページ数)
・他にも DC_PRINTRATE と DC_PRINTRATEUNIT の組み合わせもある。

(参照サイト)
http://msdn.microsoft.com/ja-jp/library/cc428443.aspx
同じドライバーのプリンター2台をプールすることができました。
今のところ偏りが見られるので、さらに検証中です。

Posted by 中田智玄 at 2012年10月26日 19:11
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック