dポイントプレゼントキャンペーン実施中!

社内のIPアドレスを変更することになり、その影響で各クライアントに設定されているプリンタのIPアドレスも変更しなくてはいけません。
一台ずつ設定して回るのは、難しいので、ログオンスクリプトで対応できないかと考えています。
どのように記述すれば行えるでしょうか?
また、ほかによい方法があれば教えていただけるでしょうか?
環境: Server:windows server 2003 r2,Client:windows 7とxp混在。
(Active Directoryを運用しています)
よろしくお願いいたします

A 回答 (1件)

プリンタの設定変更は結構厄介ですね。


実際に実施していないので確実な保証は出来ませんがこんな感じで出来るのではないかと思います。

>一台ずつ設定して回るのは、難しいので、ログオンスクリプトで対応できないかと考えています。

ログオンスクリプトで実施する場合には、ログオンユーザーの権限とWindows7の場合はUACを考慮しなければなりません。
ログオンユーザーに管理者権限が無い場合はコマンドに資格情報を記載するなどの対応が必要になると思います。
この場合スクリプトに権限のあるユーザーとパスワードが記載されることになります。
(移行作業中の期間限定でドメインユーザーを作成し、制限されたグループなどで管理者権限を与えるなどが考えられます)

あと、プリンタ名が端末ごとまちまちだとそもそもスクリプトでの変更がなりたちませんので注意が必要です。

設定は大きく2つ必要です。
(1)新しいIPアドレスのプリンタポートを新規作成
(2)プリンタが新しいプリンタポートを使用するよう変更

(1)は
Prnport.vbs でプリンタポートを作成します。
以下を参考にして、旧IPアドレスのポートとIPアドレス以外が同じ設定のプリンタポートを作成します。
http://technet.microsoft.com/ja-jp/library/cc754 …

WinodwsXPとWindows7でPrnport.vbsの格納場所が若干異なるので注意して下さい。
OSを判定してパスを変える必要があると思います。
(スクリプト内でもグループポリシーでWMIフィルタやOUを分けるなどで対応は問題ないでしょう)

(2)は
WMIにてプリンタの割り当てられているポートを変更します。
以下を参考にして下さい。
http://www.wmifun.net/sample/vb6/win32_printer_f …

なお、これはVB6のサンプルでVBSのサンプルが現在移行準備中となっていてありません。
VB6のサンプルからVBスクリプトを起こす必要があります。(ほかのWebサイトに良いサンプルがあるかもです)

こちらのWin32_Printer クラスのリファレンスをみればわかりますが、
要は、Nameプロパティが該当のプリンタ名のプリンタでPortNameを設定すれば良いだけなのでWMICコマンドでも何とかなりそうに思います。
(WMICは資格情報を指定するオプションがありますのでこちらのほうがいいかも)

http://www.wmifun.net/library/win32_printer.html

WMICの説明はこちら

http://www.atmarkit.co.jp/fwin2k/win2ktips/1011w …


グループポリシーの基本設定でも出来るかもしれませんがXPがネックになりますね。
    • good
    • 1
この回答へのお礼

ものすごく助かりました。
ありがとうございした

お礼日時:2013/09/13 10:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!