こんにちは。五所です。
今日は、Windowsで仕事をしている会社のインフラを整備する立場の方であれば、一度は体験するようなことを記事にします。
やりたいこと
社内のPCに、プリンターのドライバを手動で入れるのが面倒くさい。
かといって、今からプリンタサーバーを構築するのも面倒くさい。
(サーバー費用、サーバーの置き場所、冗長化、拠点をまたぐ設置・・・考えただけで頭が痛い。)
そうだ!プリンタドライバのインストールを自動化すればいいんだ!
ActiveDirectoryのログインシェルを使えばできるはず。
やったこと
こちらのサイトを参考にし、プリンターの追加をバッチファイルから行おうとした。
LAN内の全PCに自動でプリンタードライバーをインストールする方法
そしてこんな感じのバッチファイルを作った。
::::::::::::::::::: : 設定 ::::::::::::::::::: : インストールするプリンタのIPアドレス set ip=192.168.X.XXX : プリンターのドライバ情報が記載されているINFファイルのパス set driver_inf="c:\path\to\XXX.inf" : INFファイルに記載されているプリンター名 set driver_name="Driver Name" : ユーザーに表示させるプリンター名 set printer_name="Printer Name" ::::::::::::::::::: cd C:\Windows\System32\Printing_Admin_Scripts\ja-JP cscript /nologo prnport.vbs -a -s %COMPUTERNAME% -r IP_%ip% -h %ip% -o raw -n 9100 cscript /nologo prndrvr.vbs -a -m %driver_name% -v 3 -i %driver_inf% cscript /nologo prnmngr.vbs -a -p %printer_name% -m %driver_name% -r IP_%ip%
はまったところ
このまま実行すればインストールできるはずだが、現実にはドライバ名が間違っていたとか権限がどーのとか一筋縄ではいかない。
そんな時のためにエラーメッセージがあるが、エラーメッセージがあまりにも分かりづらかったため無駄な時間を使った。
特に
cscript /nologo prndrvr.vbs -a -m %driver_name% -v 3 -i %driver_inf%
でエラーメッセージが出ることが多かったため、紹介する。
プリンター ドライバーを追加できません {プリンター名} エラーコード 87
→ %driver_name%がINFファイルで定義されたプリンタ名に存在しない。タイポの可能性が高い。
プリンター ドライバーを追加できません {プリンター名} エラーコード 5
→ 権限の問題。右クリック >「管理者権限で実行」すればあっさり通る。どうやら、一度もインストールしたことが無いドライバを入れる際は管理者権限が必要らしい。