编辑:我认为它来自HKEY_USERS\.DEFAULT\Printers\ConvertUserDevModesCount
. 我看到这里列出的所有原始和新打印机连接以及大量重复\\CSR|<ServerName>\{<long GUID>}
条目。我以一种全面的方式发现了这篇文章,这让我开始关注这个领域。
我有一组通过 GPO 部署到计算机的打印机。今天,我尝试更改该打印机映射。新的打印机映射显示在工作站上,但旧的仍然显示。
但是,在登录之前,计算机上不存在用户配置文件。C:\Users 中没有任何内容,高级系统设置中没有任何内容。是的,我有很多电脑要测试。即使我删除了部署打印机的 GPO,原始打印机仍会继续显示在“设备和打印机”窗口中。
如果我从 AD 中删除用户,并重新添加具有相同用户名和密码的新用户,则原始/旧打印机不再显示。
此外,如果我使用 powershellget-printer
或wmic printer list brief
这些原始/旧打印机不会出现。它们也不会出现在注册表中,HKCU\Printers\Connections
但所有正确/新的打印机映射都会出现。然而,这些旧连接继续显示在“设备和打印机”窗口中。而且,它们继续正常工作。
这些是混合 Azure AD 加入的 PC。但是,我们没有 AD 高级版,也没有配置企业状态漫游。我们没有使用漫游配置文件。我们不会将文件夹重定向到任何网络共享。似乎没有其他设置漫游或出现。保存的文件不见了。这似乎会影响同一台机器上的所有或多个用户,包括配置文件是“临时”并在每次注销时删除的“访客”用户。
这些打印机如何继续出现在用户没有配置文件且没有部署 GPO 或脚本的计算机上。为什么它们只显示在“设备和打印机”中,而不显示在 wmic、powershell 或注册表中?用户过去曾在我们组织内登录过这台计算机和其他计算机。
如果通过类似GPO
Delprof
的机制删除了用户配置文件,这似乎是 Windows 中打印作业的“客户端渲染”的错误/问题。Delete user profiles older than a specified number of days on system restart
我看到的是每个用户的打印机连接都存储在这里:
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Providers\Client Side Rendering Print Provider
即使在通过上述机制之一删除配置文件后,这些设置也会在用户登录时重新应用到用户帐户。因此,以前安装的打印机重新出现。这些在其他地方被称为“幽灵打印机”或“幻影打印机”。
我们在我们的 PC 实验室中使用“删除早于...的用户配置文件”GPO 来保持它们对所有不同用户的登录有点干净。因此,在同一策略中,我应用了 Internet 上其他地方提到的修复程序。使用 GPO 创建 4 个新的注册表项:
重新启动计算机并在用户登录旧打印机时消失。
此外,我认为这与用户首次登录时打印机不会部署多次的问题直接相关。打印机仅在注销并重新登录或使用
gpupdate
. 应用程序事件日志中记录的主要错误是The user '<printer name>' preference item in the 'Connect Printers {<GUID>}' Group Policy Object did not apply because it failed with error code '0x80070057 The parameter is incorrect.' This error was suppressed.
到目前为止,我已经测试了几个场景,这两个问题都得到了解决。从本质上讲,如果用户之前登录到计算机但配置文件已被删除,他们将遇到旧打印机出现问题和/或由于上述问题导致打印机在首次登录时无法连接。