Windowsクライアント用の自動プリンタドライバのダウンロードをセットアップする

提供: 雑廉堂Wiki

はじめに

Windowsクライアント用のSambaプリントサーバーを実行している場合は、ドライバをアップロードしてプリンタを事前設定することができます。 ユーザーがSambaサーバー上のプリンタに接続すると、Windowsは自動的にドライバをダウンロードしてローカルにインストールします。ユーザー は、インストールにローカル管理者権限を必要としません。さらに、Windowsは、用紙サイズやトレイ数など、あらかじめ設定されたドライバ設 定を適用します。

サポートされているプリンタドライバ

一般情報

多くのドライバは、Sambaプリントサーバーにアップロードできるように提供されています。

  • ドライバが圧縮形式で提供されている場合は、アーカイブを展開します。
  • ドライバによっては、Windowsホストにドライバをローカルにインストールするセットアップアプリケーションを起動する必要があります。そういった場合、インストーラーは、セットアップ中にオペレーティングシステムの一時フォルダーに個々のファイルを抽出します。ドライバファイルを使用してSambaプリントサーバにアップロードするには、インストーラを起動し、一時フォルダから新しい場所にファイルをコピーして、インストールをキャンセルします。

ドライバが、Windowsによる自動ダウンロードのためのプリントサーバへのアップロードをサポートしているかどうかは、プリンタの製造元に問 い合わせて下さい。

サポートされているWindowsプリンタドライバ

Sambaは、Windows 2000~10およびWindows Server 2000~2016でサポートされているプリンタドライバモデルバージョン3のみをサポートしてい ます。

パッケージ対応ドライバを使用するには:

  • Samba 4.7以降を実行する
  • spoolssdサービスを有効にします。詳細については、「spoolssdサービスの有効化」を参照してください。

Windows 8およびWindows Server 2012で導入されたドライバモデルバージョン4は、Sambaではサポートされていません。代わりにバージョン3の ドライバを使用してください。

32ビットおよび64ビットドライバ

64ビットWindowsアーキテクチャ用のプリンタドライバは、Windows 64ビットオペレーティングシステムからしかアップロードできません。 32ビ ットのドライバは、32ビットおよび64ビットのWindowsオペレーティングシステムからアップロードできる。

どちらのアーキテクチャにもドライバを提供するには、両方のアーキテクチャでまったく同じ名前を使用する32ビットと64ビットのドライバをア ップロードする必要があります。たとえば、Windows用の32ビットHP Universal Printing PSドライバと64ビットHP Univers al Printing PS(v5.5.0)ドライバーをアップロードする場合、ドライバー名は異なり、同じプリンター用に使用および事前構成するこ とはできません。

64ビットドライバのみをSambaプリントサーバーにアップロードする

デフォルトの設定を使用すると、Samba自身がWindows NT x86アーキテクチャとして報告されます。したがって、このプリントサー バーに格納されている64ビットのドライバは、まったく同じ名前の32ビットドライバがアップロードされている場合にのみ、プリンタに割り当て ることができます。それ以外の場合は、ドライバの割り当て時にプリンタのプロパティに表示されるリストにドライバが表示されません。

Sambaプリントサーバーに64ビットのドライバのみを提供するには:

  • smb.confファイルの[global]セクションに次の設定を追加します。
spoolss:architecture = Windows x64
  • Sambaをリロードする:
#smbcontrol all reload-config

SePrintOperatorPrivilege特権の付与

SePrintOperatorPrivilege特権が付与されたユーザーおよびグループのみが、プリンタドライバをアップロードおよび事前設定で きます。 この権限は、どのユーザーまたはグループにも付与できます。

たとえば、Domain Adminsグループに権限を付与するには、次のように入力します。

#net rpc rights grant "SAMDOM \ Domain Admins" SePrintOperatorPrivilege -U "SAMDOM \ administrator"
Enter SAMDOM\administrator's password:
Successfully granted rights.

SePrintOperatorPrivilege特権が付与されているすべてのユーザーおよびグループを一覧表示するには、次のように入力します。

# net rpc rights list privileges SePrintOperatorPrivilege -U "SAMDOM\administrator"
SePrintOperatorPrivilege:
  BUILTIN\Administrators
  SAMDOM\Domain Admins

[print$]共有を構成する

Windowsは、プリントサーバーのprint$共有からプリンタドライバをダウンロードします。この共有名はWindowsではハードコード されており、変更することはできません。

/srv/samba/printer_drivers/フォルダをprint$として共有するには:

  • smb.confファイルに次のセクションを追加します。
[print$]
       path = /srv/samba/printer_drivers/
       read only = no
  • Sambaをリロードする:
#smbcontrol all reload-config
  • ディレクトリを作成します。
#mkdir -p /srv/samba/printer_drivers/
  • 共有にアクセス許可を設定します。 SePrintOperatorPrivilege特権を付与されたユーザーまたはグループは、共有に書き込むことができる必要があります。たとえば、Domain Adminsグループの書き込みアクセス権を設定し、他のユーザーがドライバをダウンロードできるようにするには、次のようにします。
  • POSIXアクセス制御リスト(ACL)を使用:
#chgrp -R "SAMDOM\Domain Admins" /srv/samba/printer_drivers/
#chmod -R 2775 /srv/samba/printer_drivers/
  • Windows ACLの使用:
Windowsユーティリティを使用して次の権限を設定します。
名前 アクセス許可 適用先
CREATOR OWNER フルコントロール サブフォルダとファイルのみ
Authenticated Users 読み取りと実行、フォルダの内容の一覧表示 このフォルダ、サブフォルダとファイル
Domain Admins フルコントロール このフォルダ、サブフォルダ、およびファイル
詳細については、「共有のアクセス許可とACLの設定」を参照してください。

ドライバをアップロードするときに、Sambaは自動的にprint$共有にアーキテクチャ毎のサブディレクトリを作成します。

プリントサーバーを信頼するためのGPOの作成

信頼できないソースからの悪意のあるドライバのインストールを避けるために、Windowsは、プリンタを事前構成したとき、またはユーザーがプリンタをインストールしたときに、プリントサーバーを信頼するかどうかを確認します。 Sambaプリントサーバーを信頼するグループポリシーオブジェクト(GPO)を作成し、Windowsプリントスプーラのセキュリティ更新プログラムによって導入された既知の問題を回避します。

  • ADドメイン管理者アカウントなどのグループポリシーを編集できるアカウントを使用してコンピュータにログインします。
  • グループポリシー管理コンソール(GPMC)を開きます。このコンピュータにリモートサーバー管理ツール(RSAT)がインストールされていない場合は、RSATのインストールを参照してください。
  • ADドメインを右クリックし、このドメインにGPOを作成し、このコンテナーにリンクするを選択
GPMC Create GPO.png
  • 「Legacy Printer Driver Policy」など、GPOの名前を入力します。新しいGPOがドメインエントリの下に表示されます。
  • 新しく作成したGPOを右クリックし、[編集]を選択してグループポリシー管理エディタを開きます。
  • コンピューターの構成→ポリシー→管理用テンプレート→プリンターの順に辿っていきます。
GPME Computer Printer GPOs.png
  • 「ポイント アンド プリントの制限」ポリシーをダブルクリックして、ポリシーを編集します。
  • ポリシーを有効にして、次のオプションを設定します。
  • 「ユーザーがポイント アンド プリントを行うことができるサーバー」を有効にし、フィールドに完全修飾ドメイン名(FQDN)を入力します。
  • 「新しい接続用にドライバをインストールした場合」と、「既存の接続用にドライバを更新した場合」の両方で、「警告および昇格のプロンプトを表示しない」を選択します。
GPO Point and Print Restrictions.png
  • [OK]をクリックします。
  • 「ポイント アンド プリントの実装 - 許可されたサーバー」ポリシーをダブルクリックしてポリシーを編集します。
  • ポリシーを有効にして、[表示]ボタンをクリックします。
  • プリントサーバーのFQDNを入力します。例:
GPO Package Point and Print Approved Servers.png
  • それぞれOKをクリックして、コンテンツとポリシーのプロパティの両方を閉じます。
  • グループポリシー管理エディターを閉じます。 GPOは、ドメインコントローラ(DC)のSysvol共有に自動的に保存されます。
  • グループポリシー管理コンソールを閉じます。

Windowsドメインのメンバーがグループポリシーを自動的に適用するまで待ちます。手動でポリシーを適用するには:

  • ドメインメンバを再起動します。
  • ローカル管理者権限を持つアカウントを使用して、次のコマンドを実行します。
> gpupdate /force /target:computer

プリント管理コンソールを使用してプリントサーバーに接続する

Sambaプリントサーバーに接続するには:

  • DiskOperatorPrivilege特権とprint$共有のアクセス権を持っているアカウントを使用してWindowsホストにログオンします。
  • 「スタート」をクリックし、「印刷の管理」と入力してアプリケーションを起動します。
  • [プリントサーバー]エントリを右クリックし、[サーバーの追加と削除]を選択します。
  • [サーバーの追加]フィールドにSambaプリントサーバーの名前を入力し、[リストに追加]をクリックします。
Print Management Add Print Server.png
  • [OK]をクリックします。

プリントサーバーに接続すると、ドライバのアップロードやプリンタの事前設定などのタスクを実行できます。

Sambaプリントサーバーへのプリンタドライバのアップロード

プリンタドライバをアップロードするには:

ください。

  • プリントサーバのエントリに移動し、プリントサーバをダブルクリックして、ドライバエントリを右クリックします。
  • Add Driverを選択します。
  • 次のウィザードで、ドライバをアップロードするアーキテクチャを選択し、[次へ]を選択します。
  • [ディスク使用]をクリックして、選択したアーキテクチャのプリンタドライバを含むフォルダに移動します。
  • アップロードするドライバをリストから選択します。
  • 同じプリンタ用に32ビットと64ビットのドライバをアップロードする場合は、両方のドライバがまったく同じドライバ名を持つ必要があります。 詳細については、「32ビットおよび64ビットドライバ」を参照してください。
  • [完了]をクリックして、ドライバをprint $共有にアップロードします。
  • アップロード後、ドライバは[ドライバ]メニューに表示されます。
Print Management Driver List.png


必要に応じて、追加のアーキテクチャ用のドライバをアップロードします。

プリンタへのドライバの割り当て

印刷管理コンソールの使用

Windowsプリント管理コンソールを使用してドライバをプリンタに割り当てるには:

  • プリントサーバーに接続します。プリント管理コンソールを使用してプリントサーバーに接続するを参照してください。
  • プリントサーバーのエントリに移動し、プリントサーバーをダブルクリックして、プリンタのエントリを選択します。
  • プリンタを右クリックし、[プロパティ]を選択します。
Print Management Printer Properties.png
  • ドライバがプリンタに関連付けられていない場合、次の警告が表示されます。
Print Management Driver Not Found Message.png

Noをクリックします。ドライバは、アップロードされたドライバのリストから後の手順で選択されます。 - [詳細設定]タブに移動し、一覧からドライバを選択します。例:

Print Management Select Driver.png

64ビットドライバのみをアップロードし、そのドライバがリストに表示されない場合は、「64ビットドライバのみをSambaプリントサーバーにアップロードする」を参照してください。

  • [OK]をクリックして、プリンタのドライバを設定します。

警告が表示された場合は、操作をキャンセルし、このプリントサーバーが提供するドライバを信頼するグループポリシーを設定します。詳細については、「プリントサーバーを信頼するためのGPOの作成」を参照してください。

Trust Print Server Warning.png
  • ドライバがプリンタに割り当てられた後、Windowsは自動的にプリンタの名前をプリンタドライバの名前に変更します。 smb.confファイルで設定したプリンタ名に手動で名前をリセットすることをお勧めします。
  • プリンタを右クリックし、[名前の変更]を選択します。
  • プリンタ名をsmb.confファイルで設定した名前に戻し、Enterキーを押します。
  • プリンタリストが自動的にリフレッシュされない場合は、[F5]キーを押します。

Samba rpcclientユーティリティの使用

rpcclientユーティリティを使用して、Sambaプリントサーバー上のローカルプリンタにドライバを割り当てるには:

  • print $共有で利用可能なすべてのドライバを一覧表示する:
#rpcclient localhost -U "SAMDOM\administrator" -c "enumdrivers"
  • ドライバをプリンタに割り当てます。 たとえば、HP Universal Printing PS ドライバをDemoPrinterプリンタに

割り当てるには、次のように入力します。

#rpcclient localhost -U "SAMDOM\administrator" -c 'setdriver "DemoPrinter" "HP Universal Printing PS"'
  • 結果を確認するには:
#rpcclient localhost -U "SAMDOM\administrator" -c "enumprinters"

プリンタの事前設定

管理者がプリントサーバー上でドライバをあらかじめ設定していた場合、プリンタに接続しているユーザーは、デフォルトで設定を自動的に適用します。複数のアーキテクチャー用のドライバーがサーバーにインストールされている場合、事前構成済みの設定は、プリンターのすべてのドライバー・プラットフォームに自動的に適用されます。詳細については、「32ビットおよび64ビットドライバ」を参照してください。

プリンタを事前設定するには:

  • プリントサーバーに接続します。「プリント管理コンソールを使用してプリントサーバーに接続する」を参照してください。
  • プリントサーバーのエントリに移動し、プリントサーバーをダブルクリックして、プリンタのエントリを選択します。
  • プリンタを右クリックし、[プロパティ]を選択します。
  • ドライバに応じて、[デバイス設定]などのタブが用意されており、インストールされている用紙トレイなどの一般設定を行うことができます。
  • それ以上の設定を事前に設定するには、[詳細設定]タブに移動し、[デフォルトの印刷]をクリックします。
  • 事前設定するすべての設定を更新します。たとえば、用紙サイズやデフォルトの給紙元などです。
  • [OK]をクリックして、詳細設定とプリンタのプロパティを保存します。