У меня есть несколько серверов Windows 2012 R2, на которых отображается 300–400 принтеров в Control Panel
> Hardware
> Devices and Printers
. Они также отображаются как очереди печати в диспетчере устройств. Многие из них дублируются - список в Devices and Printers выглядит примерно так:
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 - могут ли они каким-то образом получать эти принтеры друг от друга?
По-видимому, это проблема с 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
После добавления указанных выше записей включите службу диспетчера очереди печати, и начнется автоматическая периодическая обрезка принтеров.