LoginSignup
3
8

More than 5 years have passed since last update.

PowerShellを使ってプリンターをまとめてインストールする

Posted at

Windows Serverにプリンタを50機種・100台程度インストールすることになり、手作業ではやってられん。ということで、PowerShellでスクリプトを書いて自動化することにしました。

開発環境

  • Windows 10
  • Visual Studio Code + PowerShell Language Support for Visual Studio Code

実行環境

  • Windows Server 2012R2

注意

使用したコマンドレットはWindows 8/2012以降でないと使えないので注意が必要です。詳細はこちら

手順

以下の手順で作業をおこないます。

  1. プリンタドライバの入手と解凍
  2. INFファイルのインストール
  3. プリンタドライバのインストール
  4. プリンタポートの作成
  5. プリンタの作成
  6. プリンタ固有の設定

プリンタドライバの入手と解凍

インストールするプリンタのドライバをメーカーのサイトなどから入手します。今回はWindows Server 2012R2用のものを取得しました。
取得したドライバはzipファイルや自己解凍形式の圧縮ファイルになっているので、適当なディレクトリ(例えば、C:\work)に解凍しておきます。

INFファイルのインストール

プリンタドライバを解凍したディレクトリにINFファイルがあるので、まずはそれをインストールします。

INFファイルのインストール
pnputil -a "C:\work\driver\FX DocuCentre-V C5575\fx5c7775T2plw170710wxp6fja\cswnd\ART_EX\amd64\001\FXLSOJL.INF"

-aオプションにINFファイルの絶対パスを指定します。

プリンタドライバのインストール

1つ前のステップでインストールしたINIファイルを開いて、インストールするプリンタドライバ名を確認します。

FXLSOJL.INF
(略)

[FXIDPF.NTamd64]
"FX DocuCentre-V C2275"  = DC_C2275_PLW,USBPRINT\FUJI_XEROXDocuCentre3443
"FX DocuCentre-V C2275"  = DC_C2275_PLW,LPTENUM\FUJI_XEROXDocuCentre3443
"FX DocuCentre-V C2275"  = DC_C2275_PLW,WSDPRINT\FUJI_XEROXDocuCentre3443

"FX DocuCentre-V C3375"  = DC_C3375_PLW,USBPRINT\FUJI_XEROXDocuCentre0813
"FX DocuCentre-V C3375"  = DC_C3375_PLW,LPTENUM\FUJI_XEROXDocuCentre0813
"FX DocuCentre-V C3375"  = DC_C3375_PLW,WSDPRINT\FUJI_XEROXDocuCentre0813

"FX DocuCentre-V C4475"  = DC_C4475_PLW,USBPRINT\FUJI_XEROXDocuCentreBDA3
"FX DocuCentre-V C4475"  = DC_C4475_PLW,LPTENUM\FUJI_XEROXDocuCentreBDA3
"FX DocuCentre-V C4475"  = DC_C4475_PLW,WSDPRINT\FUJI_XEROXDocuCentreBDA3

"FX DocuCentre-V C5575"  = DC_C5575_PLW,USBPRINT\FUJI_XEROXDocuCentre83F3
"FX DocuCentre-V C5575"  = DC_C5575_PLW,LPTENUM\FUJI_XEROXDocuCentre83F3
"FX DocuCentre-V C5575"  = DC_C5575_PLW,WSDPRINT\FUJI_XEROXDocuCentre83F3

(略)

INIファイルを開いて上のような箇所を探します。今回は、C5575をインストールするので、"FX DocuCentre-V C5575"をメモしておきます。これがプリンタドライバ名となります。大文字・小文字、空白も区別するので注意してください。

Add-PrinterDriverコマンドレットを使って、プリンタドライバをインストールします。

プリンタドライバのインストール
Add-PrinterDriver -Name "FX DocuCentre-V C5575"

-Nameオプションでインストールするプリンタドライバ名を指定します。INFファイルの場所もオプションで指定できるようです。
Add-PrinterDriverコマンドレットの詳細については、こちらを参照してください。

プリンタポートの作成

今回は、TCP/IPプリンタポートを作成します。Add-PrinterPortコマンドレットを使用します。プロトコルは"RAW"で作成しています。最近のプリンタは大抵"RAW"でいけます。

プリンタポートの作成
Add-PrinterPort -Name "192.168.14.1" -PrinterHostAddress "192.168.14.1" -PortNumber 9100

使用したオプションの意味は以下のとおりです。

オプション名 設定内容
Name プリンタポートの名前。今回はIPアドレスと同じにしました。
PrinterHostAddress プリンタのIPアドレス。このオプションを使うと、TCP/IPポートを作成します。
PortNumber 最近のレーザープリンタの場合は9100でよい。不安な時はマニュアル等で確認してください。

ラインプリンタの場合は少しオプションが異なります。RAWではなく、LPRプロトコルとなるからです。

プリンタポートの作成(ラインプリンタの場合)
Add-PrinterPort -Name "192.168.14.4" -LprHostAddress "192.168.14.4" -LprQueueName "LP1" -LprByteCounting
オプション名 設定内容
Name プリンタポート名。IPアドレスと同じにしました。
LprHostAddress プリンタのIPアドレス。LPRプロトコルのTCP/IPポートを作成する場合は、こちらのオプションを使います。
LprQueueName プリンタのキュー名を設定します。InfoPrint系は"LP1"のようです。サポートサイト等で確認できます。
LprByteCounting LPRバイトカウントを有効にするかどうか。オプションを付けると有効になります。

Add-PrinterPortコマンドレットの詳細は、こちらを参照してください。

プリンタの作成

いよいよ最後です。Add-Printerコマンドレットを使用して、プリンタを作成します。

プリンタの作成
Add-Printer -DriverName "FX DocuCentre-V C5575" -Name "FX DocuCentre-V C5575(test)" -PortName "192.168.14.2" -Comment "俺のプリンタ" -Location "俺の部屋"
オプション名 設定内容
DriverName 使用するプリンタドライバ名。
Name プリンタ名。「デバイスとプリンター」に表示される名前となります。
PortName 使用するプリンタポートの名前。
Comment コメント。プリンタのプロパティで「コメント」欄に表示されます。
Location 場所。プリンタのプロパティで「場所」欄に表示されます。

Add-Printerコマンドレットの詳細は、こちらを参照してください。

プリンタ固有の設定

プリンタ固有の設定がある場合は、コントロールパネル経由で個別に設定します。もしかしたら、こちらもPowerShellでいじれるのかもしれませんが未確認です。

ps1ファイルでまとめて実行

複数機種・複数台インストールする場合は、"INFファイルのインストール"から"プリンタの作成"までをps1ファイルに記述して、一括実行します。
ただ、PowerShellでps1ファイルを実行しようとすると実行できないエラーが発生します。実行ポリシーのデフォルトが"Restricted"(いかなるスクリプトも実行できない)になっているようです。(OSによってデフォルトが異なるという噂も)
わたしはこちらの記事を参考にして実行しました。

3
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
8