ある独立したフロアのActiveDirectoryサーバの更新をずっと準備しています。技術的にはいつでも来い!なのですが、当事者たちがなかなかGoサイン出さなくてかれこれ1年。Windows Server 2012 R2 で構成されたADに移行するのですが、ログオン時にサーバ上の プリンタ 群を 登録 するに当たり、グループポリシーから PrintUIEntry を使ったBATを叩く仕組みを使っています。
(グループポリシー自身にもプリンタを登録するオブジェクトがあるのですが、ドライバがローカルにインストールされない場合がある、という神出鬼没な不具合により、BATを組みました)
その際に使ったのが、「Rundll32 printui.dll,PrintUIEntry」。
プリンタ接続の登録
1 |
Rundll32 printui.dll,PrintUIEntry /in /q /n プリンタ名 |
ネットワークプリンタ接続の削除
1 |
Rundll32 printui.dll,PrintUIEntry /dl /q /n プリンタ名 |
AD鯖は2台あり、いずれにもプリンタを設定してあるのでBATではまず、主鯖にPingして応答を確認、正常であればメインサーバ、異常であればサブサーバのプリンタを登録。その際、以前に登録された他方のプリンタを消すようにしています。ワイルドカード使えるかな、と試しましたがダメでした。ということで、ベタに構成します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
@echo off ping -n 1 192.168.32.1 | find "TTL=" > NUL if errorlevel 1 GOTO prt_on_SRV02 if errorlevel 0 GOTO prt_on_SRV01 :prt_on_SRV01 rem REMOVE PRINTERS ON SRV02 rundll32 printui.dll,PrintUIEntry /dn /q /n \\SRV02.ad.local\C7771-32F-Pantry-BW-SRV02 rundll32 printui.dll,PrintUIEntry /dn /q /n \\SRV02.ad.local\C7771-32F-Pantry-Color-SRV02 rundll32 printui.dll,PrintUIEntry /dn /q /n \\SRV02.ad.local\C7771-32F-Account-BW-SRV02 rundll32 printui.dll,PrintUIEntry /dn /q /n \\SRV02.ad.local\C7771-32F-Account-Color-SRV02 rundll32 printui.dll,PrintUIEntry /dn /q /n \\SRV02.ad.local\C2263-32F-BW-SRV02 rundll32 printui.dll,PrintUIEntry /dn /q /n \\SRV02.ad.local\C2263-32F-Color-SRV02 rem ADD PRINTERS ON SRV01 rundll32 printui.dll,PrintUIEntry /in /q /n \\SRV01.ad.local\C7771-32F-Pantry-BW-SRV01 rundll32 printui.dll,PrintUIEntry /in /q /n \\SRV01.ad.local\C7771-32F-Pantry-Color-SRV01 rundll32 printui.dll,PrintUIEntry /in /q /n \\SRV01.ad.local\C7771-32F-Account-BW-SRV01 rundll32 printui.dll,PrintUIEntry /in /q /n \\SRV01.ad.local\C7771-32F-Account-Color-SRV01 rundll32 printui.dll,PrintUIEntry /in /q /n \\SRV01.ad.local\C2263-32F-BW-SRV01 rundll32 printui.dll,PrintUIEntry /in /q /n \\SRV01.ad.local\C2263-32F-Color-SRV01 GOTO END :prt_on_SRV02 echo SRV01 negative, trying SRV02... rem REMOVE PRINTERS ON SRV01 rundll32 printui.dll,PrintUIEntry /dn /q /n \\SRV01.ad.local\C7771-32F-Pantry-BW-SRV01 rundll32 printui.dll,PrintUIEntry /dn /q /n \\SRV01.ad.local\C7771-32F-Pantry-Color-SRV01 rundll32 printui.dll,PrintUIEntry /dn /q /n \\SRV01.ad.local\C7771-32F-Account-BW-SRV01 rundll32 printui.dll,PrintUIEntry /dn /q /n \\SRV01.ad.local\C7771-32F-Account-Color-SRV01 rundll32 printui.dll,PrintUIEntry /dn /q /n \\SRV01.ad.local\C2263-32F-BW-SRV01 rundll32 printui.dll,PrintUIEntry /dn /q /n \\SRV01.ad.local\C2263-32F-Color-SRV01 rem ADD PRINTERS ON SRV02 rundll32 printui.dll,PrintUIEntry /in /q /n \\SRV02.ad.local\C7771-32F-Pantry-BW-SRV02 rundll32 printui.dll,PrintUIEntry /in /q /n \\SRV02.ad.local\C7771-32F-Pantry-Color-SRV02 rundll32 printui.dll,PrintUIEntry /in /q /n \\SRV02.ad.local\C7771-32F-Account-BW-SRV02 rundll32 printui.dll,PrintUIEntry /in /q /n \\SRV02.ad.local\C7771-32F-Account-Color-SRV02 rundll32 printui.dll,PrintUIEntry /in /q /n \\SRV02.ad.local\C2263-32F-BW-SRV02 rundll32 printui.dll,PrintUIEntry /in /q /n \\SRV02.ad.local\C2263-32F-Color-SRV02 GOTO END :END |
参考)
Rundll32 printui.dll,PrintUIEntry – Microsoft TechNet