我有一台需要淘汰的 Windows 2003 打印服务器。
通过各种方法(登录脚本等),我思考我已将所有人都从该服务器迁移并连接到新的打印服务器。
话虽如此,我还是想在关闭服务器之前确认一下:-)
是否有一个脚本可以运行来查询我域中的远程工作站,以查看它连接到哪些打印机共享?
答案1
请记住,在 NT 衍生的操作系统(W2K、WXP、Vista、7 等)中,每个用户都有打印机“连接”,每个机器都有“连接”。其中任何一个都可能起作用,并且未登录用户的注册表将无法供您远程检查。
遍历远程计算机的注册表,寻找对即将退役的打印服务器上的打印机的 SMB 共享名称的“本地端口”引用是一种可能性。如果它可以通过除 SMB 之外的其他协议访问(假设您安装了“Unix 打印服务”并将其公开为 LPR 队列),则您需要寻找可以建立每台计算机“连接”的任何其他潜在方法。
我想您可以编写一些东西,在登录时浏览每个用户的打印机列表,寻找与即将退休的打印服务器的“连接”。但是,除非您还开发某种报告机制,否则您不会知道每个用户何时登录。如果您没有漫游用户配置文件,并且用户在计算机之间移动,那么您确实需要检查他们使用的每台计算机上的注册表。更有趣。
我认为您在“幕后”处理这个问题是注定要失败的。从“第一天”开始,我就使用脚本、GPO 等“管理”用户的打印机连接,在迁移打印服务器方面取得了很大成功。另一方面,在用户控制的情况下,我更倾向于发送一封电子邮件,说“打印服务器 xxx 将于 yyy 的 zzz 永久关闭。新的打印队列现已在 AD 中发布,我建议连接到它们。”然后就听天由命了。
我越来越认为,在打印机选择方面,用户应该像“成年人”一样对待,只要服务器端有识别打印机物理位置的良好惯例,用户就可以使用 Windows 中的内置工具来定位已发布的打印机并“连接”到它们。
如果是我,我会将服务器脱机,但将其保留在易于恢复的状态(例如,停止“服务器”和“打印后台处理程序”服务,或修改队列上的 ACL 以防止一般使用)。等待投诉,在投诉出现时解决它们(显然,如果有必要,将服务器恢复到生产能力,以便有时间缓解短期投诉),然后在“扑灭火灾”后再次关闭服务器。继续,直到您相当满意地消除了所有“连接”。