Как удалить несуществующие принтеры в Windows?
Несколько сетевых принтеров были удалены с сервера печати, и я хочу автоматически удалить их с помощью скрипта (например, используя objPrinter.delete_
в vbs) от любого клиента, все еще ссылающегося на них; желательно, чтобы я действительно знал, какие принтеры я удаляю в этих случаях, и автоматически подключал соответствующий принтер для замены. Это не было бы трудно, если бы я мог прочитать список таких несуществующих принтеров в первую очередь.
Ситуация в графическом интерфейсе состоит в том, что принтеры по-прежнему отображаются в разделе "Устройства и принтеры", причем на значке принтера отображается только значок принтера по умолчанию, он отображается серым цветом, а рядом с ним отображается желтый предупреждающий треугольник. Но принтер не отображается в списке, например, по запросу WMI " SELECT * FROM Win32_Printer
Msgstr "Есть ли другой запрос, который был бы успешным для этого?
1 ответ
Удалить сетевой принтер через командную строку и без графического интерфейса можно через обновление реестра.
Следующие два раздела реестра содержат определения установленных принтеров:
HKEY_CURRENT_USER\Printers\Connections
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Providers\LanMan Print Services\Servers\Printers
Вам нужно найти имена подключей вышеупомянутых, которые содержат сетевые принтеры, которые вы хотите удалить. Как только вы узнаете их имена, это также станет методом проверки, установлен ли определенный принтер в данный момент. Удалите подразделы, затем перезагрузите компьютер, чтобы убедиться, что принтер остается удаленным.
Здесь есть некоторые важные моменты:
- Возможно, необходимо остановить службу диспетчера очереди печати.
- Очередь принтера должна быть пустой, находится в папке
C:\Windows\System32\spool\PRINTERS\
, Вы не можете удалить принтер, если у вас есть элементы в очереди печати. См. Также статью Как принудительно очистить очередь печати в Windows. - GUI способ удалить принтер, запустив от имени администратора
printui /s /t2
выберите принтер, нажмите кнопку "Удалить", установите флажок "Удалить драйвер и пакет драйверов" и нажмите кнопку "ОК".
Некоторые подробности можно найти в статье Исправление не удается удалить или удалить сетевой принтер в Windows.
Использовал Revo Uninstaller, чтобы убедиться, что все было удалено и принтер продолжал отображаться как общий. Попробовав все в Интернете, я открыл диспетчер устройств, который показал, что драйверы все еще существуют, и удалил их, и моя проблема была решена.
У меня была такая же проблема, только ни одно из Управление печатью / удаление / удаление / реестр удаляет из HKLM\System\ControlSet001\Enum\SWD\PRINTENUM & HKLM\System\CurrentControlSet\Enum\SWD\PRINTENUM, HKEY_CURRENT_USER\Printers\Connection и HKEY_USERS.DEFAULT\ Принтеры работали. Я попробовал все следующее:
Очистите папку диспетчера очереди печати. Когда удаленный принтер продолжает появляться снова, это может быть связано с тем, что с этим принтером все еще связаны задания, которые все еще находятся в очереди печати и не могут быть сброшены. В Server 2012 R2 и предыдущих версиях вы захотите проверить следующий путь: C:\WINDOWS\system32\spool\PRINTERS. Там вы увидите файлы спула с расширениями.shd и.shl. Удалите все содержащиеся в нем файлы, затем перезапустите службу диспетчера очереди печати. Удалить драйвер. В редких случаях драйвер будет связан с конкретным печатающим устройством и приведет к его сохранению. Если принтер невозможно удалить из-за отказа в доступе в Server 2012 R2, попробуйте удалить драйвер. Это может вызвать много проблем, если другие клиенты все еще используют этот драйвер, поэтому обязательно делайте это в спокойный период. Перезагрузите сервер и посмотрите, пропал ли принтер-призрак. Если это так, вы можете безопасно переустановить драйвер. Попробуйте перейти на более новую версию, если предыдущая была устаревшей. Сыграйте в игру "Диспетчер очереди печати". Иногда удаление принтера может потребовать от вас дополнительной ловкости. Некоторые администраторы сообщают, что им пришлось остановить спулер, затем запустить его, а затем немедленно попытаться удалить принтер через консоль управления печатью до завершения запуска спулера. Это может занять несколько попыток. Проверьте наличие случайных ключей реестра и перенаправлений: если вы обнаружите, что принтер-призрак не может быть удален из-за отказа в доступе в Server 2012 R2, есть вероятность, что он все еще находится в реестре. Устаревшие ключи реестра могут помешать удалению принтера. Чтобы удалить принтер из реестра в Windows Server 2012 R2, попробуйте сканировать разделы реестра и запустить процесс восстановления с помощью программного средства.
У меня было 42 принтера, в основном от 4 до 5 копий одного и того же принтера, и что бы я ни пытался, они просто возвращались. В конце, в отчаянии перед тем, как я собирался восстановить машину, я попытался очистить реестр CCleaner (возможно, есть и лучшие, но он был под рукой, и это решило проблему).