![見出し画像](https://assets.st-note.com/production/uploads/images/54418357/rectangle_large_type_2_3eb393c0d0d312b5f8cbcedd868c2431.png?width=1200)
バッチファイルでプリンタを自動インストールさせる
2023/08/25 「通常使うプリンタに設定する」を追加
2023/09/20 ポートがうまく削除できない場合の対処法を追加
プリンタプロパティをコマンドから開く方法を追加
-----------------------------------------------------------------------------
ずいぶん昔に作ったものを改めて見直してみた。
当時は大規模なプリンタ入替をワンボタンで一気にインストールするようにしたいという要望で作った。
前提
・ネットワークドライブ越しで動くことを想定する。
ファイルサーバ環境ではないのでパスは以下で記載
\\localhost\c$\printerdriver\
上記の部分を実際のファイルサーバのパスに変えれば動くと思う。
プリンタドライバ用意
infファイルを使ってインストールを行うので、何か適当にDLし、ファイルサーバに格納する。
今回はフジフィルムビジネスイノベーションの以下をDLした
DLしたexeファイルを実行するとプログラムが起動するが、プログラム起動時に生成されるフォルダが欲しいだけなので、停止させる。
![画像1](https://assets.st-note.com/production/uploads/images/54418469/picture_pc_1466e7b09f89452c1b9f423053c41648.png)
exeはいらないので削除。生成されたフォルダを適用な名前にする。
![画像2](https://assets.st-note.com/production/uploads/images/54418590/picture_pc_6b3caa15b1a368c5f78f2cde8eaa3b64.png)
前記のようにinfファイルが欲しいので、検索する。
![画像3](https://assets.st-note.com/production/uploads/images/54418657/picture_pc_e6cadbeb8a26d0afd2efdf3d6492d336.png?width=1200)
下記に存在していることが分かった。
\\localhost\c$\printerDrive\printer\Software\PS\amd64\Japanese\001\FXPIOJL.inf
infファイルの中身を見てみる
途中で以下のような箇所がある。
その中にある「FX DocuCentre-VII C5588 PS H2」を今回は入れてみる。
![画像4](https://assets.st-note.com/production/uploads/images/54419072/picture_pc_06f24ae8997aaef1ca2831f246728570.png?width=1200)
コマンド確認
自動インストールするために核となるのは以下
C:\Windows\System32\Printing_Admin_Scripts\ja-JP\cscript prndrvr.vbs
C:\Windows\System32\Printing_Admin_Scripts\ja-JP\cscript prnport.vbs
C:\Windows\System32\Printing_Admin_Scripts\ja-JP\cscript prnmngr.vbs
プリンタドライバのインストールをする
まずはドライバをインストールする。
※各パスはローカルPC内でないと動かない。ネットワークドライブにしてもダメだった。
cd C:\Windows\System32\Printing_Admin_Scripts\ja-JP\
cscript prndrvr.vbs -a -m 「ドライバ名」 -v 3 -e "windows x64" -h 「ドライバフォルダへのフルパス」-i 「INFファイルのフルパス」
実際の例は以下。
ドライバのフォルダパス、INFは予め調べた通り。
cd C:\Windows\System32\Printing_Admin_Scripts\ja-JP\
cscript prndrvr.vbs -a -m "FX DocuCentre-VII C5588 PS H2" -v 3 -e "windows x64" -h c:\printerDrive\printer\Software\PS\amd64\Japanese\001 -i c:\printerDrive\printer\Software\PS\amd64\Japanese\001\FXPIOJL.inf
プリンタポートを作る
ネットワークプリンタになるので、ポートを作る
cd C:\Windows\System32\Printing_Admin_Scripts\ja-JP\
cscript prnport.vbs -a -r「ポート名」 -h 「IP」 -o raw -n 9100
実際の例は以下。IPは192.168.0.100、ポート名は「IP_192.168.0.100」とする。
cd C:\Windows\System32\Printing_Admin_Scripts\ja-JP\
cscript prnport.vbs -a -r IP_192.168.0.100 -h 192.168.0.100 -o raw -n 9100
プリンタを作成する
いざプリンタをインストール
cd C:\Windows\System32\Printing_Admin_Scripts\ja-JP\
cscript prnmngr.vbs -a -p 「プリンタ名」 -m 「プリンタドライバ」 -r IP_192.168.3.201
実際の例は以下。
cd C:\Windows\System32\Printing_Admin_Scripts\ja-JP\
cscript prnmngr.vbs -a -p "FX DocuCentre-VII C5588 PS H2" -m "FX DocuCentre-VII C5588 PS H2" -r IP_192.168.0.100
通常使うプリンタに設定する
rundll32.exe printui.dll,PrintUIEntry /y /n 「プリンタ名」
実際の例は以下。
rundll32.exe printui.dll,PrintUIEntry /y /n "FX DocuCentre-VII C5588 PS H2"
コマンドからプリンタプロパティを開かせる
実行すると指定したプリンタのGUIのプロパティ画面が開く
rundll32.exe printui.dll,PrintUIEntry /p /n 「プリンタ名」
実際の例は以下。
rundll32.exe printui.dll,PrintUIEntry /p /n "FX DocuCentre-VII C5588 PS H2"
プリンタドライバを消したい場合は
cd C:\Windows\System32\Printing_Admin_Scripts\ja-JP\
cscript prnmngr.vbs -d -p 「プリンタ名」
プリンタポートも削除
cd C:\Windows\System32\Printing_Admin_Scripts\ja-JP\
cscript prnport.vbs -d -r 「ポート名」
もし、当該ポートが未使用なのに以下のエラーが出る場合
ポートを削除できません エラー 0x80041001 エラーです
操作 DeleteInstance
プロバイダー Win32 Provider
説明 要求されたリソースは使用中です。
Spoolerサービスを以下のように再起動してやり直せばいける
net stop Spooler
net start Spooler
まとめ
既存のプリンタを削除し、新しくプリンタを入れ直すバッチを作る。
なお、管理者として実行しないと「エラーコード:5」が出る。
@echo on
rem echo 既存プリンタを削除します。
cscript prnmngr.vbs -d -p "FX DocuCentre-VII C5588 PS H2"
rem echo 既存ポートを削除します。
cscript prnport.vbs -d -r IP_192.168.0.100
rem echo プリンタドライバをインストールします。
cd C:\Windows\System32\Printing_Admin_Scripts\ja-JP
cscript prndrvr.vbs -a -m "FX DocuCentre-VII C5588 PS H2" -v 3 -e "windows x64" -h \\localhost\c$\printerDrive\printer\Software\PS\amd64\Japanese\001 -i \\localhost\c$\printerDrive\printer\Software\PS\amd64\Japanese\001\FXPIOJL.inf
rem echo プリンタポートをインストールします。
cscript prnport.vbs -a -r IP_192.168.0.100 -h 192.168.0.100 -o raw -n 9100
rem echo プリンタを作成します。
cscript prnmngr.vbs -a -p "FX DocuCentre-VII C5588 PS H2" -m "FX DocuCentre-VII C5588 PS H2" -r IP_192.168.0.100
上記バッチで見事インストールされた
![画像5](https://assets.st-note.com/production/uploads/images/54426035/picture_pc_a73fe4366cde7919e8efb94e20148f4d.png?width=1200)
次のアクション
当時はプロパティを変更する仕組みをvbsで実装していたので、改めて確認したい。
その他のバッチファイルの記事は以下
この記事が気に入ったらサポートをしてみませんか?