Closed5

[Windows] バッチファイルからプリンタドライバを変える

Kumasun MorinoKumasun Morino

目的

バッチファイルでプリンタのドライバだけを変えたい

これ!

環境

Windows 7 Professional
(おそらくWindows 10でも大丈夫)

Kumasun MorinoKumasun Morino

コマンドでインストールされているプリンタ一覧をゲット

C:\>cscript C:\Windows\System32\Printing_Admin_Scripts\ja-JP\prnmngr.vbs -l

Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

サーバー名
プリンター名 TEST
共有名
ドライバー名 NEC MultiWriter 5500 PCL 6
ポート名 192.168.11.230
コメント
場所
プリント プロセッサ winprint
データ型 RAW
パラメーター
属性 2624
優先順位 1
既定の優先順位 0
平均処理ページ数 (分) 0
プリンターの状態 アイドル
プリンターの状態の詳細 不明
検出されたエラーの状態 不明
検出されたエラーの状態の詳細 不明

サーバー名
プリンター名 Microsoft XPS Document Writer
共有名
ドライバー名 Microsoft XPS Document Writer
ポート名 XPSPort:
コメント
場所
プリント プロセッサ winprint
データ型 RAW
パラメーター
属性 576
優先順位 1
既定の優先順位 0
平均処理ページ数 (分) 0
プリンターの状態 アイドル
プリンターの状態の詳細 不明
検出されたエラーの状態 不明
検出されたエラーの状態の詳細 不明

列挙されたローカル プリンターと接続の数 2

ここの「ドライバー名」というのが必要

Kumasun MorinoKumasun Morino

本題: コマンドでプリンタのドライバを変更

プリンタ "TEST" のドライバを "Microsoft XPS Document Writer" に変更してみる

C:\>rundll32 printui.dll PrintUIEntry /Xs /n "TEST" DriverName "Microsoft XPS Document Writer"

特に何もレスポンスはないが…

C:\>cscript C:\Windows\System32\Printing_Admin_Scripts\ja-JP\prnmngr.vbs -l

Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.


サーバー名
プリンター名 TEST
共有名
ドライバー名 Microsoft XPS Document Writer
ポート名 192.168.11.230
コメント

(後略)

確認すると、ドライバー名が「Microsoft XPS Document Writer」に変わっている

変わってる

GUIから確認してもドライバーが変わっている

Kumasun MorinoKumasun Morino

注意点

おそらく、プリンタのドライバの設定(「標準の設定」で設定する両面印刷やホッパ情報など)が全部吹っ飛ぶので
事前に保存しておいて復元かけないといけないと思われる

Kumasun MorinoKumasun Morino

参考: プリンタドライバの設定をファイルに書き出す&復元

REM ファイルに書き出す
rundll32 printui.dll PrintUIEntry /Ss /n "TEST" /a "%TEMP%\TEST.prs"

REM ファイルから復元
rundll32 printui.dll PrintUIEntry /Sr /n "TEST" /a "%TEMP%\TEST.prs"

ファイルから復元するとドライバー情報も戻るので、改めて /Xs する必要はない

このスクラップは2022/02/17にクローズされました