arachansan's diary

誰にも左右されず、硬派なBlogを書きます。

PrinterDriverを追加するPowershell

はじめに

プリンターをコマンドラインで追加するバッチは長らく、rundll32 printui.dll,PrintUIEntry を実行したり、prnport.vbsといったvbsを使ったものが主流であった。

私はこれらの設定方法はもう古いと思っている。

Powershellという武器を使えばWMIObjectを使ってプリンタードライバーをインストールできる。

PrintUIEntryを使ったバッチファイルよりもわかりやすい。

基本的なソース

プリンタードライバーのインストールをPowershellで書いた。

まずはソースを眺めてください。

次に説明を書きます。

add-prindriver.ps1

# 共有ドライブ Z:ドライブを作っておく
net use z: \\NAS\Driver password /user:root
 
$PrinterDriverList=New-Object System.Management.ManagementClass("Win32_PrinterDriver")
$PrinterDriver=$PrinterDriverList.CreateInstance()
# プリンタードライバー名
$PrinterDriver.Name="Canon LBP8720/8710 LIPSLX"
#  Windows x64か Windows NT x86か
$PrinterDriver.SupportedPlatform="Windows x64"
$PrinterDriver.Version="3"
# ドライバーのフォルダ
$PrinterDriver.DriverPath=”Z:\Printer_Driver\LIPSLX\x64\Driver"
# INFファイルのあるパス
$PrinterDriver.InfName=”Z:\Printer_Driver\LIPSLX\x64\Driver\CNLB0JA64.INF"
$PrinterDriverList.AddPrinterDriver($PrinterDriver)
# Putするのに管理者権限が必要
$PrinterDriverList.Put()

New-Object System.Management.ManagementClass("Win32_PrinterDriver") でPrinterDriverを追加するWMIObjectを呼び出している。

infファイルに書かれているプリンタードライバー名をNameに書く

SupportPlatformは64bit版OSであれば、Windows x64と書く。

DriverPathにはプリンタードライバーのフォルダーを指定する。

InfNameにはinfファイルがある場所をフルパスで書き込む。

これを実行すればPCにプリンタードライバーを追加できます。

ポートの追加は?プリンターの追加は?

上記のようにプリンタードライバーを追加した上で 下記のWMIObjectを使って追加します。

  • ポートの追加 -- Win32_TcpIpPrinterPort
  • プリンターの追加 -- Win32_Printer

追って説明します。