Q

2つの拠点間で,Active Directoryを使ってユーザーを管理しています。各拠点にはそれぞれドメイン・コントローラ(DC)およびプリンタが設置されていますが,ユーザーが別の拠点に出張してログオンした場合は,その拠点にあるプリンタを自動的に割り当てたいと考えています。ユーザーのログオン先を自動的に判断し,各拠点にあるプリンタ・キューを割り当てるには,どうしたらよいのでしょう?

A

まず,2つの拠点間のネットワークがどのように接続されているか調べてみる必要があります。これらの拠点が複数のセグメントに分かれており,DCも拠点ごとに存在していれば,拠点ごとにActive Directoryのサイトを設定することでプリンタを適切に割り当て可能です。

サイトごとにスクリプトで割り当て
 サイトは「Active Directoryサイトとサービス」のツールを使用して作成します。サイト作成時に表示されるポップアップ・メッセージの注意事項に従い,正しく構成してください。

 次に,サイトの数だけのグループ・ポリシー・オブジェクト(GPO)を作成し,それぞれにプリンタ・キューを作るバッチ・ファイルをログオン・スクリプトとして登録します(図1)。GPOにサイト名をつけると管理しやすいでしょう。このバッチ・ファイルの書き方はマイクロソフトのサポート技術情報を参照してください(189105)。


図1●プリンタ・キューを作成するコマンド・スクリプト
各拠点に合わせたこれらのコマンドをサイトのグループ・ポリシーにログオン・スクリプトとして定義することで,拠点ごとのプリンタ切り替えが可能になる。

 割り当てるプリンタ・キューは,あらかじめサーバー上に共有として作成しておいたものを使うと便利です。これならば,改めてユーザー権限でドライバをロードする必要がありません。ローカル・プリンタを作成するには,プリンタ・ドライバをロードする権限や,ドライバを組み込む作業が必要なため,あまりお勧めできません。

 最後に,このGPOをサイトに結び付けます。これで,サイト間でのGPO設定が完了いたしました。

 ただし,この方法には,いくつか注意すべき点があります。

 まず,DCなど本来は「プリンタ・キューを割り当てたくないマシン」に対しても,そのサイトに属していればプリンタ・キューが割り当てられてしまいます。これは,ログオン・スクリプトに,ホスト名を判定するIF文を組み込めば回避できますが,バッチ・ファイルが複雑になってしまいメンテナンス性に問題が残ってしまいます。

 次に,一度作成したプリンタ・キューはプロファイルに保存されるため,パソコンを移設した場合でも別サイトで作った過去のプリンタ・キューが残ってしまうという問題があります。こういった状態が望ましいケース以外はログオフ・スクリプトにプリンタ・キューを削除するバッチ・ファイルを追加して回避したほうがよいでしょう。

 なお,今回使用したrundll32.exeコマンドは,プリンタの作成以外にも様々なDLLを実行可能になる便利なコマンドですので,使い方を覚えておくとよいでしょう。rundll32.exeの詳細についてはサポート技術情報をご覧ください(164787)。

山岸 真人