0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Windows Server 2016コンテナにプリンタドライバーをインストールする方法

Last updated at Posted at 2018-10-17

概要

Windows Server 2016 コンテナ にプリンタドライバーをインストールする方法です。
Windows Server Core の docker イメージをベースにコンテナを作成しますが、Server Coreは通常の Windows Server 2016 よりも機能が絞られているためプリンタドライバーのインストールでエラーが多発しました。また、コマンドラインベースのためエラーの詳細が不明でエラーの原因の特定にも非常に苦労しました。ようやくプリンタドライバーのインストールまで実現できましたので手順を記載しておきます。

1. はじめに

今回はプリンタドライバーとして FUJI XEROX DocuPrint 4050 ART EXドライバー を使用します。

このプリンタドライバーは、Microsoft Windows ロゴテストに合格しているため問題なくインストールができます。
合格していないプリンタドライバーを利用する場合はインストールに失敗する可能性があるので注意が必要です。

2. Dockerfileの作成

Dockerfileではプリンタドライバーのインストールに必要な以下の機能のインストールとサービスの開始を行います。

  • Print-Server
  • Spooler
  • DeviceInstall

ダウンロードしたプリンタドライバーは展開しておき、Dockerfileと同じディレクトリへ配置します。

Dockerfile
FROM microsoft/windowsservercore:ltsc2016

RUN mkdir C:\printer-driver

ADD fxdp4050plw171210wxp6fja/cswnd /printer-driver

RUN PowerShell Install-WindowsFeature Print-Server
RUN PowerShell Set-Service Spooler -StartupType Automatic
RUN PowerShell Start-Service Spooler

RUN PowerShell Set-Service DeviceInstall -StartupType Automatic
RUN PowerShell Start-Service DeviceInstall

ADD Install.ps1 /

CMD PowerShell -File C:\Install.ps1

3. PowerShellスクリプトの作成

DockerfileのRUNからは何故かプリンタドライバーのインストールに失敗するため、CMDからインストールを行います。
インストールに必要なコマンドはPowerShellスクリプトとして用意しておきます。

Install.ps1
$printername = "FX DocuPrint 4050"
$printerport = "LPT1:"

pnputil /add-driver "C:\printer-driver\ART_EX\amd64\001\fxlclji.inf" /install
Add-PrinterDriver -Name "$printername"
Add-Printer -Name "$printername" -DriverName "$printername" -PortName "$printerport"

作成したPowerShellスクリプトはDockerfileと同じディレクトリへ配置します。

4. dockerコンテナのビルドと実行

Dockerfileがあるディレクトリへ移動し、以下のコマンドでdockerコンテナのビルドと実行を行います。
正常に実行されている場合、Windows Server 2016 コンテナにプリンタドライバー「FX DocuPrint 4050」がインストールされます。

コマンドプロンプト
docker build -t printer-test -m 4G --isolation hyperv .
docker run --rm --memory 4G --isolation hyperv -it printer-test
0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?