![如何在 Windows 10 机器的默认配置文件中设置通过 Samba 共享的打印机?](https://linux22.com/image/1506317/%E5%A6%82%E4%BD%95%E5%9C%A8%20Windows%2010%20%E6%9C%BA%E5%99%A8%E7%9A%84%E9%BB%98%E8%AE%A4%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E4%B8%AD%E8%AE%BE%E7%BD%AE%E9%80%9A%E8%BF%87%20Samba%20%E5%85%B1%E4%BA%AB%E7%9A%84%E6%89%93%E5%8D%B0%E6%9C%BA%EF%BC%9F.png)
我目前管理着一个学术图书馆的计算机实验室。我们有一台通过 Samba 共享的 CUPS 打印机,用于提供现金销售打印、为忘记身份证的学生和客人提供打印服务。这台打印机已经运行了好几年,效果非常好。
我们最近将实验室升级到 Windows 10,发现它不再“记住”打印机。我们可以通过导航到轻松安装打印机\\xxx.yyy.zzz.253\Cash Sales Printer
- 它会找到驱动程序、安装并正常工作。但它只能在该个人资料我们需要让每个登录的用户都能使用,即使他们之前从未登录过。
我该如何设置这台打印机以使其默认可用?
更新:
我尝试按照以下步骤将其添加为本地打印机:
Add Printer
从控制面板中的设备和打印机菜单- 点击“我想要的打印机未列出”
- 单击“添加本地打印机或手动设置的网络打印机”,然后单击“下一步”
- 点击“创建新端口”
- 从下拉菜单中选择“标准 TCP/IP 端口”,然后单击“下一步”
- 在“主机名或 IP 地址”字段中输入 IP 地址,然后单击下一步
- 它静静地旋转了大约 2 分钟,然后说:
到目前为止,我尝试了几种不同的方法。我选择“标准打印服务器”作为设备类型,然后继续设置,一路选择正确的驱动程序。在这种情况下,我成功定义了一台打印机,但我的所有测试打印作业都失败了。
我还尝试选择设备类型为“自定义”,将协议更改为 LPR,并将其lpr1
作为队列名称。这失败了——我定义了打印机,但无法成功打印到它。
我尝试输入其共享名作为主机,但 Windows 10 拒绝接受 \ 字符作为该字段的输入,因此我无法继续。
更新2:
有关设置的更多详细信息。
打印机本身是 HP LaserJet P4014n。它有一个内置打印服务器,并连接到我们的网络。但是,它不会直接与相关实验室计算机共享。
这台打印机是我们的现金销售打印机。我们需要能够在打印机开始打印之前授权打印作业。为了实现这一点,我们设置了一个 Ubuntu Linux 服务器,并通过 CUPS 将打印机连接到该服务器。这是定义它的 Printers.conf 文件:
<Printer Cash_Sales>
UUID urn:uuid:f8c8f3f0-d4c6-3ec9-7acb-4325bdec9e3e
Info Pay cash for your black and white prints.
Location Front desk.
DeviceURI hp:/net/HP_LaserJet_P4014?ip=aaa.bbb.ccc.ddd
PPDTimeStamp *
State Idle
StateTime 1424138203
Type 8425668
Accepting Yes
Shared Yes
ColorManaged Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
OpPolicy default
ErrorPolicy retry-job
Option job-hold-until indefinite
Option job-hold-until-default indefinite
</Printer>
这些Option job-hold-until
设置允许我们使用 CUPS 网络界面来发布通过 CUPS 发送到此打印机的打印作业。
下一步是通过 Samba 将 CUPS 定义的链接共享给打印机。以下是 smb.conf 中的相关行:
[printers]
comment = Cash Sales
browseable = yes
path = /var/spool/samba
printable = yes
guest ok = yes
read only = yes
create mask = 0700
# Windows clients look for this share name as a source of downloadable
# printer drivers
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
read only = no
guest ok = yes
Linux 端一切正常。我可以进入实验室中的任何机器,使用以下命令访问实际打印机的 CUPS 打印机的 Samba 共享:
\\aaa.bbb.ccc.ddd\Cash Sales Printer
...其中 abcd 是实际 IP 地址。Windows 可以很好地找到 Samba 共享上的驱动程序,并安装打印机并进行打印。
剩下的唯一一件事就是在实验室里安装好这个该死的东西。过去四年来,我们一直在 Windows 7、8 和 8.1 下安装。但我不知道最后一步。要么是我缺乏一些关键的知识,要么是 Win 8.1 和 Win 10 之间发生了一些变化,导致它无法正常工作。
学校三周前开学了。现金销售打印机不是默认设置的,参考馆员每天要设置 10 到 20 次,每个需要它的用户设置一次。我已经为此挣扎了好几个星期,除了其他事情要做之外,自二月份以来,我一直在兼任三个全职职位,当时技术部门的其他两名成员都离开了,去了新的地方。
感觉我离解决方案已经很近了。我只是希望这个愚蠢的东西能起作用。
答案1
解决了!有效的程序如下:
- 转到控制面板、设备和打印机,然后添加打印机
- 点击“我想要的打印机未列出”
- 选择“添加本地打印机或手动设置的网络打印机”,然后下一步
- 选择“创建新端口”
- 将端口类型更改为“本地端口”,然后下一步
- 对于端口名称,输入 \\HOST_NAME_OR_IP\SHARE_NAME
- 当提示输入驱动程序时,请选择您的制造商/驱动程序。
- 完成向导,并将打印机命名为“Cash Sales”。
这样,打印机就被定义为使用当地的端口,因此会显示在所有配置文件中。
但本地端口实际上指向网络共享,以便打印作业到达正确的位置。
需要注意的一点是,我的 Samba 宣传共享的名称为“Cash Sales Printer”,但在内部它被命名为“Cash_Sales”——这似乎与打印机在 CUPS 中的命名方式相对应。我必须使用该\\\aaa.bbb.ccc.ddd\Cash_Sales
版本才能使其正常工作。
还有一个缺点,那就是自动驱动程序部署不起作用。您必须从 Windows 自带的长长列表中手动选择驱动程序,或者通过“有磁盘”选项提供驱动程序。因此部署要繁琐得多。但至少它能正常工作!
非常感谢提出建议的评论者。