Фантомные принтеры в Windows

У меня есть несколько серверов Windows 2012 R2, на всех которых отображается 300–400 принтеров в Панель управления > Оборудование > Устройства и принтеры . Они также отображаются как очереди печати в диспетчере устройств. Многие из них являются дубликатами - список в разделе «Устройства и принтеры» выглядит примерно так:

Printer_A on Print_Server_1
Printer_A on Print_Server_1
Printer_A on Print_Server_1
Printer_A on Print_Server_1
Printer_A on Print_Server_1
Printer_B on Print_Server_1
Printer_B on Print_Server_1
Printer_X on Print_Server_2
Printer_X on Print_Server_2
Printer_X on Print_Server_2
Printer_X on Print_Server_2

Я могу удалить принтеры в разделе «Устройства и принтеры», выбрав принтер и нажав «Удалить устройство». Кажется, что принтеры удалены, но снова появляются после того, как я выхожу из системы и снова вхожу в систему.

Когда я запускаю это, я вижу пустой список (0 принтеров):

c:\windows\system32\rundll32.exe printui.dll,PrintUIEntry /ge

Командлет PowerShell get-printer перечисляет только пять принтеров, а также это:

cscript c:\windows\system32\printing_admin_scripts\en-us\prnmngr.vbs -l

Я вижу те же пять принтеров под этим ключом:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers

Я вижу 23 соединения (ни одно не является дубликатом) под этим ключом:

HKEY_CURRENT_USER\Printers\Connections

Как я могу выяснить, откуда эти сотни принтеров, чтобы я мог навсегда удалить их? Серверы обслуживаются через RDS - могут ли они каким-то образом получать эти принтеры друг от друга?

1
задан 5 August 2016 в 16:41
1 ответ

По-видимому, это проблема Windows Server, если сервер имеет роль RDS И использует удаленный сервер печати, на котором включен рендеринг на стороне клиента.

Простое решение - добавить реестр записи для включения 15-минутной обрезки списка принтеров и автоматического удаления при выходе из системы:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Providers\Client Side Rendering Print Provider]
"InactiveGuidPrinterAge"=dword:00000384
"ActiveGuidPrinterAge"=dword:00000384
"InactiveGuidPrinterTrim"=dword:00000384
"RemovePrintersAtLogoff"=dword:00000001

После добавления указанных выше записей включите службу диспетчера очереди печати, и начнется автоматическая периодическая обрезка принтеров.

2
ответ дан 3 December 2019 в 20:36

Теги

Похожие вопросы