1.16. 在 Samba 打印服务器中为 Windows 客户端设置自动打印机驱动程序下载


如果您在为 Windows 客户端运行 Samba 打印服务器,你可以上传驱动程序并预配置打印机。如果用户连接到打印机,Windows 会自动在客户端本地下载并安装驱动程序。用户不需要本地管理员权限进行安装。另外,Windows 应用预配置的驱动程序设置,如纸匣的数量。

本节的部分内容摘自 Samba Wiki 上发布的为 Windows 客户端设置自动打印机驱动程序下载文档。许可证: CC BY 4.0。作者和贡献者:请参阅 Wiki 页面上的历史选项卡。

先决条件

  • Samba 被设置为打印服务器

1.16.1. 有关打印机驱动程序的基本信息

本节提供有关打印机驱动程序的一般信息。

支持的驱动程序模型版本

Samba 只支持 Windows 2000 及更高版本支持的,以及 Windows Server 2000 及更高版本支持的打印机驱动程序模型版本 3。Samba 不支持 Windows 8 和 Windows Server 2012 中引入的驱动程序模型版本 4。但是,这些及之后的 Windows 版本也支持版本 3 驱动程序。

包感知驱动程序

Samba 不支持包感知驱动程序。

准备上传的打印机驱动程序

在您将驱动程序上传到 Samba 打印服务器之前:

  • 如果驱动程序采用压缩格式提供,请解包它。
  • 有些驱动程序需要启动一个设置应用程序,以便在 Windows 主机上本地安装驱动程序。在某些情况下,安装程序会在设置运行期间将单个文件提取到操作系统的临时文件夹中。使用驱动程序文件上传:

    1. 启动安装程序。
    2. 将临时文件夹中的文件复制到新位置。
    3. 取消安装。

请您的打印机厂商提供支持上传到打印服务器的驱动程序。

为客户端提供 32 位和 64 位驱动

要为 32 位和 64 位 Windows 客户端提供打印机的驱动程序,您必须上传两个架构具有完全相同名称的驱动程序。例如,如果您上传名为Example PostScript的 32 位驱动程序和名为Example PostScript (v1.0) 的 64 位驱动程序,则名称不匹配。因此,您只能为打印机分配其中一个驱动程序,且该驱动程序无法对这两个架构都适用。

1.16.2. 启用用户上传和预配置驱动程序

要上传和预配置打印机驱动程序,用户或组需要被赋予 SePrintOperatorPrivilege 特权。用户必须被添加到 printadmin 组中。安装 samba 软件包时,Red Hat Enterprise Linux 会自动创建此组。printadmin 组被分配了低于 1000 的最小可用动态系统 GID。

流程

  1. 例如,要对 printadmin 组赋予 SePrintOperatorPrivilege 特权:

    # net rpc rights grant "printadmin" SePrintOperatorPrivilege -U "DOMAIN\administrator"
    Enter DOMAIN\administrator's password:
    Successfully granted rights.
    Copy to Clipboard Toggle word wrap
    注意

    在域环境中,将 SePrintOperatorPrivilege 赋予域组。这可让您通过更新用户的组成员资格来集中管理权限。

  2. 列出所有被赋予了 SePrintOperatorPrivilege 的用户和组:

    # net rpc rights list privileges SePrintOperatorPrivilege -U "DOMAIN\administrator"
    Enter administrator's password:
    SePrintOperatorPrivilege:
      BUILTIN\Administrators
      DOMAIN\printadmin
    Copy to Clipboard Toggle word wrap

1.16.3. 设置 print$ 共享

Windows 操作系统从打印服务器上名为 print$ 的共享中下载打印机驱动程序。这个共享名称在 Windows 中硬编码,无法更改。

以下流程解释了如何将 /var/lib/samba/drivers/ 目录共享为 print$,并使本地 printadmin 组的成员能够上传打印机驱动程序。

流程

  1. /etc/samba/smb.conf 文件中添加 [print$] 部分:

    [print$]
            path = /var/lib/samba/drivers/
            read only = no
            write list = printadmin
            force group = printadmin
            create mask = 0664
            directory mask = 2775
    Copy to Clipboard Toggle word wrap

    使用这些设置:

    • 只有 printadmin 组成员才能将打印机驱动程序上传到共享。
    • 新创建的文件和目录的组将被设为 printadmin
    • 新文件的权限将被设置为 664
    • 新目录的权限将被设置为 2775
  2. 要只为所有打印机上传 64 位驱动程序,请在 /etc/samba/smb.conf 文件的 [global] 部分中包含此设置:

    spoolss: architecture = Windows x64
    Copy to Clipboard Toggle word wrap

    如果没有这个设置,Windows 只显示您上传的至少 32 位版本的驱动程序。

  3. 验证/etc/samba/smb.conf文件:

    # testparm
    Copy to Clipboard Toggle word wrap
  4. 重新载入 Samba 配置

    # smbcontrol all reload-config
    Copy to Clipboard Toggle word wrap
  5. 如果 printadmin 组不存在,请创建它:

    # groupadd printadmin
    Copy to Clipboard Toggle word wrap
  6. SePrintOperatorPrivilege 特权赋予 printadmin 组。

    # net rpc rights grant "printadmin" SePrintOperatorPrivilege -U "DOMAIN\administrator"
    Enter DOMAIN\administrator's password:
    Successfully granted rights.
    Copy to Clipboard Toggle word wrap
  7. 如果您在enforcing模式下运行 SELinux,请在目录中设置samba_share_t上下文:

    # semanage fcontext -a -t samba_share_t "/var/lib/samba/drivers(/.*)?"
    
    # restorecon -Rv /var/lib/samba/drivers/
    Copy to Clipboard Toggle word wrap
  8. /var/lib/samba/drivers/ 目录设置权限:

    • 如果使用 POSIX ACL,请设置:

      # chgrp -R "printadmin" /var/lib/samba/drivers/
      # chmod -R 2775 /var/lib/samba/drivers/
      Copy to Clipboard Toggle word wrap
    • 如果使用 Windows ACL,请设置:

      Expand
      主体权限适用于

      创建者所有者

      完整控制

      只适用于子文件夹和文件

      通过身份验证的用户

      读和执行、列出目录内容、读

      这个文件夹、子文件夹和文件

      printadmin

      全控制

      这个文件夹、子文件夹和文件

      有关在 Windows 上设置 ACL 的详情,请查看 Windows 文档。

出于安全考虑,最近的 Windows 操作系统会阻止客户端从不受信任的服务器下载非包感知的打印机驱动程序。如果您的打印服务器是 AD 中的成员,您可以在域中创建一个组策略对象(GPO)来信任 Samba 服务器。

先决条件

  • Samba 打印服务器是 AD 域的成员。
  • 您用来创建 GPO 的 Windows 计算机必须安装有 Windows 远程服务器管理工具(RSAT)。详情请查看 Windows 文档。

流程

  1. 使用允许编辑组策略的帐户(如 AD 域 Administrator 用户)登录到 Windows 计算机。
  2. 打开 组策略管理控制台
  3. 右键单击 AD 域并选择 创建此域中的 GPO,并链接到此处

  4. 为 GPO 输入一个名称,如 Legacy Printer Driver Policy ,并点击 OK。新的 GPO 将在域条目下显示。
  5. 右键单击新创建的 GPO,然后选择 编辑 以打开 组策略管理编辑器
  6. 进入 Computer Configuration Policies Administrative Templates Printers

  7. 在窗口的右侧,双击 指向和打印限制 来编辑策略:

    1. 启用策略并设置以下选项:

      1. 选择 用户只能指向并打印到这些服务器,再将 Samba 打印服务器的完全限定域名(FQDN)输入到此选项旁边的字段。
      2. 安全提示 下的两个复选框中,选择 不显示警告 或 高程提示

    2. 点击确定。
  8. 双击 包指向和打印 - 已批准的服务器 来编辑策略:

    1. 启用策略并单击 显示 按钮。
    2. 输入 Samba 打印服务器的 FQDN。

    3. 单击 OK,关闭 显示内容 和策略的属性窗口。
  9. 关闭 组策略管理编辑器
  10. 关闭 组策略管理控制台

在 Windows 域成员应用了组策略后,用户连接到打印机时会自动从 Samba 服务器下载打印机驱动程序。

1.16.5. 上传驱动程序和预配置打印机

在 Windows 客户端使用 打印管理 应用程序上传托管在 Samba 打印服务器上的驱动程序和预配置打印机。详情请查看 Windows 文档。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat