クイック エンジニアリングブログ

株式会社クイック Web事業企画開発本部のエンジニアリングチームが運営する技術ブログです。

【Windows】バッチファイルからプリンタを追加する時のエラーメッセージの解説

こんにちは。五所です。

今日は、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

→ 権限の問題。右クリック >「管理者権限で実行」すればあっさり通る。どうやら、一度もインストールしたことが無いドライバを入れる際は管理者権限が必要らしい。

おまけ

結局作ったスクリプトは、ADのポリシーの関係で使えなかった・・・

で、最後の最後にプリンタドライバの標準機能「サイレントインストール」でできましたとさ。