Q

Windows 2000 Serverを,ネットワークで接続された数百カ所の拠点ごとに設置・運用しています。これらのサーバー・マシンは各拠点のプリント・サーバーになっています。利用していたプリンタが老朽化してきたため,プリンタを新しい機種に入れ替えることになりました。クライアント・マシンなどのコンピュータで新しいプリンタを追加する必要がありますが,拠点数が多いので,できるだけ多くの作業を中央の管理センターから遠隔操作によって半自動的に実施したいと考えています(図1)。コマンド・ライン・ベースのバッチ・ファイルでプリンタを追加できるでしょうか。

図1●サーバーでのプリンタ追加を遠隔地から一括処理したい
数百カ所の拠点でサーバーのプリンタをリプレースした。サーバーへのプリンタ追加はオンサイトならウィザードで作業できるが,拠点数が多いため本部からの遠隔操作で一括処理したい。コマンド・ラインでプリンタ追加作業ができるか。

 なお,新しく設置するプリンタにはネットワーク・カードを装着,IPアドレスを既に設定してあります。プリンタのドライバも各コンピュータへインストール済みで,コンピュータに「Standard TCP/IP Port(標準TCP/IPプリンタ・ポート)」を追加して使用する予定です。

A

rundll32.exeを使い,パラメータ“PrintUIEntry”を与えてprintui.dllを呼び出すことによって,プリンタの追加作業をコマンド・ラインから実行することができます。ただし,追加する前に,Standard TCP/IP Portも作成しておく必要があります。


△ 図をクリックすると拡大されます
図2●Standard TCP/IP portの追加

 Standard TCP/IP Portは,手動ならばウィザードを使って簡単に作れます。プリンタの追加ウィザード中で新しいポートを作成するオプションからウィザードを起動できます(図2)。

 残念ながらコマンド・ラインでダイレクトに作る方法はありませんが,レジストリの書き換えで追加する方法があります。手動でまず1台のコンピュータにポートを作成し,そのレジストリ情報をまねて他のコンピュータのレジストリをバッチ・ファイルで書き換えます。

 Standard TCP/IP Portの情報は,レジストリ・キーHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
\Print\Monitors\Standard TCP/IP Port\Ports\<ポート名>配下に格納されています。.regファイルにエクスポートしてIPアドレスの情報などを加工し,プリンタを追加するバッチ・ファイルで各コンピュータにインポートすればよいでしょう。



△ 図をクリックすると拡大されます
図3●プリンタを追加するバッチ・ファイルの例

 ポートを有効にするには,インポートした後で,spoolerサービスを再起動する必要があります。図3のバッチ・ファイルのように,インポート後にnet stopおよびnet startコマンドでspoolerサービスを再起動,最後にrundll32.exeでプリンタを追加してください。

永尾 幸夫