PC の配置場所に応じて、接続するプリンタを自動的に切り替える
今回は、Active Directory 環境下の Windows Server と Windows クライアントの機能を使ったソリューションを 1 つご紹介します。
ノート PC を抱えて支社・支店を頻繁に行き来するユーザーがいる組織は少なくないと思います。特に組織の規模が大きくなればなるほどその傾向は強まるでしょう。その時のユーザーと IT 部門双方にとっての悩みの一つが、プリンタです。
当然、普段良く使うプリンタは自分の PC に登録しているとして、全ての支社・支店のプリンタを完全登録している方は恐らくいないでしょう。したとしても、いざという時にどれがどこのプリンタか分からなくなってしまうこと請け合いです。
だからと言って、支社・支店でプリンタを使う度に一から登録作業をしていては時間がもったいないですね。それに、出張先でプリントアウトをしなければいけない時に限って、時間が無かったりするものです(資料を印刷し忘れてたとか)。
そこで役立つのが、タイトルにある「PC の配置場所に応じて、接続するプリンタを自動的に切り替える」方法です。
予めお断りしておきますが、クライアント PC の設定でなんとかする、という方法ではありません。Active Directory の機能(サイト単位でのグループポリシー)を利用することで、クライアント PC 上では一切何もすることなく、予めグループポリシーで設定されているプリンタを自動的に登録し、それ以外のプリンタは自動的に登録解除するというものです(自分で手動で登録したプリンタは除く)。
さらに、グループポリシーでも 2 つの方式があり、以前この blog でもご紹介したグループポリシー基本設定を利用する方法と、従来からあるグループポリシーの項目「展開されたプリンタ」を利用する方法があります。
それぞれの概要を一覧にするとこんな感じです。
| 方法 | 対応 OS | クライアント PC へのモジュール追加 |
| グループポリシー基本設定 | Windows XP SP2 以降 | 必要 |
| グループポリシー項目「展開されたプリンタ」 | Windows 2000 以降 (2000 では一部制限あり) | 不要 |
グループポリシー基本設定自体は前回ご紹介しましたので、今回は、従来からある設定方法によるプリンタの展開方法をご紹介しますが、それぞれの方法はグループポリシーのいじる部分が異なるだけで、サイト単位でのグループポリシーを構成するという大枠の考え方は、どちらも同じです。
それでは、設定手順をご説明しますね。
【ネットワーク構成】
まず、このシナリオのネットワーク構成です。Active Directory が導入済みのとある企業があるとします。この企業には東京本社と大阪支社の 2 つの拠点があり、それぞれのネットワークはサブネットで分かれていて、Active Directory のサイト分けがなされています。そして 2 つのサイトにそれぞれのグループポリシーがリンクされているものとします(手順が長くなるので、サイト分けとグループポリシーのリンク手順は割愛させていただきます。この辺りの設定は Active Directory の技術資料をご参照ください)。
そして、東京本社には「FX DC-II C4300」というプリンタが、大阪支社には「Canon LBP 5970」というプリンタがあり、それぞれの拠点サーバー(ここではドメインコントローラーと兼用)にてインストールが済んでいます(プリンタはあくまでもサンプルです。これが推奨機というわけではありません)。
クライアント PC は、東京本社でネットワークに接続した時には「FX DC-II C4300」を、大阪支社でネットワークに接続した時には「Canon LBP 5970」を自動的に登録し、ユーザーはプリンタの登録作業をすることなく、それぞれのネットワークに接続するだけで直ぐに印刷ができることがゴールです。
【設定手順】
それでは手順をご紹介します。
まず、グループポリシーに展開対象のプリンターを登録します。この手順では、Windows Server 2003 R2 以降に標準で含まれている管理コンソール「印刷の管理」を利用しますが、グループポリシーの [展開されたプリンタ] 項目に直接共有プリンタを設定することで、下記手順と同等のことが行えます。
「サーバーマネージャー」(Windows Server 2008 / 2008 R2 の場合)、または「印刷の管理」(Windows Server 2003 R2 の場合)スナップインを起動し、左側のツリーを [印刷の管理]-[プリント サーバー]-<サーバー名>-[プリンター] と展開します。中央のペインで、登録されているプリンタを右クリックし [グループ ポリシーの展開] をクリックします。
すると下のダイアログが表示されます。ここで [参照] ボタンをクリックします。
ポップアップでグループポリシーを選択するダイアログが表示されますので、プリンタを登録したいグループポリシーを選択します。ここでは、大阪支社のプリンタ「Canon LBP 5970」を大阪支社の配下にいるクライアント PC に展開したいので、大阪支社サイトにリンクされているグループポリシーを選択し、[OK] をクリックします。
元のダイアログに戻り、[この GPO が適用されるコンピューター(コンピューターごと)]にチェックを入れて、[追加] ボタンをクリックし、[OK] ボタンをクリックしてダイアログを閉じます。これにより、このサイトの配下にある PC はすべて(どのドメインユーザーかに関わらず)このプリンタが展開されるようになります。
※ Windows 2000 はユーザーごとのプリンタ登録のみサポートしていますので、対象に Windows 2000 クライアントが存在する場合は、「ユーザーごと」を選択する必要があります。
複数のグループポリシーに対して設定する場合は、この手順を繰り返し、最後に [OK] ボタンをクリックします。
すると、グループポリシーにプリンタの設定が書き込まれ、結果が表示されます。
実際にグループポリシーを確認してみると、このように設定されているのが分かります。
これと同じ手順を、東京本社のサイト GPO に対しても実施します(ここでは省略します)。
展開対象のクライアント PC が Windows Vista / 7 のみでしたら、以上で設定は完了ですが、Windows 2000 / XP / Windows Server 2003 に対しても展開する場合には、サーバー側で追加の設定が必要になります。
追加の設定は、Pushprinterconnections.exe というモジュールをスタートアップスクリプト or ログオンスクリプトに登録するというものです。これにより、クライアント PC 起動時に実行されるこのモジュールが、グループポリシーに設定されているプリンタの情報を読み取って、自動的にプリンタを登録します(Pushprinterconnections.exe は、Windows Server 2003 R2 管理パックに含まれています)。
追加の設定手順については、補足として下の方にまとめていますので、Windows 2000 / XP / 2003 が対象に含まれている場合にはご参考になさってください。対象が Windows Vista / 7 のみの場合には、このモジュールに相当する機能が標準で組み込まれているため、サーバー側で追加の設定は不要です。
では改めまして、まず東京本社(東京サイト)のネットワークに接続した状態で Windows 7 クライアントを起動し、ドメインユーザーでログオンした結果が、下のスクリーンショットです。

続いて、ネットワークを大阪支社(大阪サイト)に切り替えて再起動した後のスクリーンショットです。

このように、接続されたネットワークに応じて、自動的にプリンタ接続が切り替わっているのがお分かりいただけると思います。コマンドプロンプトのウィンドウに表示されている gpresult コマンドの実行結果にあるように、ちゃんとサイトごとに分けたグループポリシーを読み込んだ結果、その設定が適用されたわけです。
【補足】
Pushprinterconnections.exe を使用して、Windows 2000 / XP / 2003 にプリンタを自動展開する場合に必要なサーバー側の追加手順です(本手順の実行前に、予め Pushprinterconnections.exe を用意しておきます)。
展開対象のプリンタが設定されているグループポリシーを開き、[コンピューターの構成]-[ポリシー]-[Windows の設定]-[スクリプト(スタートアップ/シャットダウン)] を開き、右側のペインの [スタートアップ] をダブルクリックして開きます。
「スタートアップのプロパティ」で、[ファイルの表示] をクリックします。
エクスプローラーのウィンドウが表示されるので、ここに Pushprinterconnections.exe を配置します。
「スタートアップのプロパティ」ダイアログに戻り、[追加] ボタンをクリックし、[スクリプト名] テキストボックスに Pushprinterconnections.exe と入力し、[OK] ボタンをクリックします。
以上で、次回クライアント PC の起動時に、自動的に Pushprinterconnections.exe が実行され、プリンタが登録されるようになります。
なお、Pushprinterconnections.exe は、Windows Vista / 7 上で実行した場合は、自動的に終了するようになっていますので、プリンタの登録が二重に実行されたり、エラーが表示されたりといった心配はありません。
【参考情報】
以下に Windows Server でのプリンタの構成管理に関する参考 URL を挙げておきます。
ステップ バイ ステップ ガイド - Windows Server 2008 の印刷の管理
http://technet.microsoft.com/ja-jp/library/cc753109(WS.10).aspx
Windows Server 2003 R2 印刷の管理機能の概要
http://technet.microsoft.com/ja-jp/library/cc758932(WS.10).aspx
マイクロソフト株式会社
山崎 淳一