Удаление принтера через стандартный интерфейс Windows часто занимает больше времени, чем хотелось бы. Особенно если устройство зависло в очереди печати или его драйвер повреждён. В таких случаях командная строка (CMD) становится единственным надёжным способом полностью удалить принтер, включая все связанные задачи и драйверы. Этот метод полезен и для системных администраторов, которым нужно автоматизировать процесс на множестве компьютеров.
Многие пользователи не знают, что Windows предоставляет встроенные инструменты для управления принтерами через консоль. В отличие от графического интерфейса, где иногда приходится перезагружать службу печати или бороться с ошибками доступа, команды printui.dll и pnputil работают стабильно. Даже если принтер Canon или HP не отображается в списке устройств, его можно удалить принудительно — главное знать правильную последовательность действий.
В этой статье мы разберём не только базовые команды, но и рассмотрим скрытые параметры, которые позволяют удалить принтер вместе с его драйверами и настройками. Вы также узнаете, как восстановить работоспособность службы печати, если она была повреждена после некорректного удаления.
Почему командная строка лучше графического интерфейса?
На первый взгляд, удаление принтера через Панель управления или Параметры Windows кажется проще. Однако у этого метода есть критические недостатки:
- 🔄 Зависшие задачи печати. Графический интерфейс не всегда очищает очередь, и принтер может оставаться в системе как "недоступный".
- 🔧 Повреждённые драйверы. При удалении через GUI драйверы часто остаются в системе, что приводит к конфликтам при повторной установке.
- 🚫 Ограничения прав. Некоторые принтеры (особенно сетевые) требуют прав администратора, которые проще получить в CMD.
- ⚡ Автоматизация. Команды можно сохранить в
.bat-файл и запускать на нескольких ПК без ручного вмешательства.
К примеру, если вы пытаетесь удалить Brother DCP-L2550DW через стандартное меню, а система выдаёт ошибку 0x00000002, то с высокой вероятностью проблема кроется в заблокированных файлах драйвера. Командная строка позволяет обойти эту блокировку, принудительно удалив все связанные компоненты.
Ещё один плюс — возможность удалить принтер по имени, не исказывая его в длинном списке. Это актуально для офисов, где подключены десятки устройств.
Подготовка системы перед удалением
Прежде чем приступать к удалению, необходимо выполнить несколько важных шагов. Это поможет избежать ошибок и гарантирует, что принтер будет удалён полностью, без "хвостов" в реестре или службах.
1. Остановите службу печати. Многие команды не сработают, если служба Spooler активна. Чтобы её остановить, откройте CMD от имени администратора и выполните:
net stop spooler
2. Проверьте имя принтера. Точное название устройства понадобится для команд. Узнать его можно через:
wmic printer get name
Эта команда выведет список всех установленных принтеров. Скопируйте название точно, включая пробелы и регистр.
3. Убедитесь, что принтер не используется. Закройте все программы, которые могут обращаться к нему (например, Microsoft Word, Adobe Acrobat или 1С). В противном случае система заблокирует доступ к драйверу.
Остановить службу Spooler|Узнать точное имя принтера|Закрыть все программы, использующие принтер|Запустить CMD от имени администратора-->
Если вы удаляете сетевой принтер, дополнительно проверьте, что он не подключён по IP или UNC-пути (например, \\server\printer). Такие подключения могут автоматически восстанавливаться при перезагрузке.
⚠️ Внимание: Если принтер используется в домене, его удаление через локальную CMD может не дать результата. В этом случае потребуются права доменного администратора или использование Group Policy.
Основные команды для удаления принтера
Существует несколько способов удалить принтер через командную строку. Мы рассмотрим три самых надёжных метода, каждый из которых подходит для разных ситуаций.
Метод 1: Использование printui.dll
Это универсальный способ, который работает во всех версиях Windows, начиная с XP. Команда вызывает встроенное диалоговое окно удаления, но в консольном режиме:
rundll32 printui.dll,PrintUIEntry /dl /n "Имя принтера"
Замените "Имя принтера" на фактическое название устройства (например, "HP LaserJet Pro M404n"). Если в имени есть пробелы, обязательно используйте кавычки.
Преимущества метода:
- ✅ Работает даже если принтер не отображается в GUI.
- ✅ Удаляет связанные задачи печати.
- ✅ Не требует знания
GUIDустройства.
Метод 2: Удаление через pnputil (для драйверов)
Если принтер удалён, но его драйвер остался в системе и мешает повторной установке, используйте:
pnputil /delete-driver oem*.inf /uninstall /force
Эта команда удаляет все драйверы принтеров, установленные в системе. Будьте осторожны: после её выполнения потребуется переустановить драйверы для всех печатающих устройств.
Чтобы удалить драйвер конкретного принтера, сначала найдите его INF-файл:
pnputil /enum-drivers
Затем удалите нужный по имени:
pnputil /delete-driver oem12.inf /uninstall
Метод 3: Принудительное удаление через wmic
Если первые два метода не сработали (например, из-за повреждённых системных файлов), используйте WMIC:
wmic printer where name="Имя принтера" delete
Эта команда обходит стандартные проверки Windows и удаляет принтер принудительно. После её выполнения рекомендуется перезагрузить службу Spooler:
net start spooler
Если команда не срабатывает, попробуйте указать имя принтера в кавычках с экранированием: \"HP OfficeJet Pro 9015\". Это актуально для имен с специальными символами.
Удаление сетевых и виртуальных принтеров
Сетевые принтеры (подключённые по TCP/IP или через сервер печати) и виртуальные (например, Microsoft XPS Document Writer) удаляются немного иначе. Здесь важно учитывать тип подключения.
Для сетевых принтеров сначала удалите само подключение:
rundll32 printui.dll,PrintUIEntry /gd /n "\\server\printer"
Затем удалите локальный след:
rundll32 printui.dll,PrintUIEntry /dl /n "Имя принтера"
Для виртуальных принтеров (например, OneNote или PDF-принтеров) используйте стандартную команду, но с указанием точного имени:
wmic printer where "name like 'Microsoft XPS%'" delete
Если принтер был установлен через Group Policy в домене, его удаление через локальную CMD может не дать результата. В этом случае обратитесь к администратору или используйте команду:
gpupdate /force
чтобы применить изменения политики.
⚠️ Внимание: Удаление сетевого принтера через CMD не удаляет его с сервера печати. Другие пользователи по-прежнему смогут им пользоваться. Чтобы полностью удалить принтер из сети, необходимо сделать это на сервере.
Очистка очереди печати и сброс службы Spooler
Даже после удаления принтера задачи печати могут оставаться в очереди, блокируя новую установку. Чтобы полностью очистить систему, выполните следующие шаги:
1. Остановите службу Spooler:
net stop spooler
2. Удалите все файлы из папки очереди. Перейдите в:
C:\Windows\System32\spool\PRINTERS
и удалите все файлы вручную (или через команду):
del %systemroot%\System32\spool\PRINTERS\* /Q
3. Перезапустите службу:
net start spooler
Если папка PRINTERS не очищается (файлы заняты процессом), используйте безопасный режим или утилиту Unlocker.
Для полного сброса службы печати можно также использовать команду:
sc config spooler depend= RPCSS
Это вернёт зависимости службы к значениям по умолчанию.
| Проблема | Команда для решения | Примечание |
|---|---|---|
| Принтер не удаляется ("доступ запрещён") | takeown /f "C:\Windows\System32\spool\drivers\x64\3\*" /r /d y |
Присваивает права на файлы драйверов текущему пользователю. |
| Очередь печати не очищается | net stop spooler & del %systemroot%\System32\spool\PRINTERS\* /Q & net start spooler |
Останавливает службу, очищает папку и перезапускает. |
| Драйвер принтера повреждён | pnputil /delete-driver oem*.inf /uninstall /force |
Удаляет все драйверы принтеров в системе. |
| Принтер появляется снова после перезагрузки | reg delete "HKCU\Printers\Connections" /f |
Удаляет сохранённые подключения из реестра. |
Восстановление системы после ошибок
Если после удаления принтера служба печати перестала работать или Windows выдаёт ошибки (например, 0x0000007c или 1068), выполните следующие действия:
1. Проверьте зависимости службы Spooler:
sc query spooler
Если в выводе есть ошибки зависимостей, восстановите их:
sc config spooler depend= RPCSS
2. Перерегистрируйте системные библиотеки:
regsvr32 printui.dll
regsvr32 winhttp.dll
regsvr32 webservices.dll
3. Восстановите реестр принтеров. Если ключи реестра повреждены, экспортируйте и удалите раздел:
reg export "HKLM\SYSTEM\CurrentControlSet\Control\Print" print_backup.reg
reg delete "HKLM\SYSTEM\CurrentControlSet\Control\Print" /f
Затем перезагрузите ПК — Windows восстановит раздел автоматически.
Если проблема сохраняется, воспользуйтесь точкой восстановления системы или командой:
sfc /scannow
для проверки целостности системных файлов.
Что делать, если принтер удалился, но не печатает после повторной установки?
Скорее всего, в системе остались конфликтующие драйверы. Полностью удалите все следы старого драйвера через pnputil, затем установите свежую версию с официального сайта производителя. Также проверьте, не блокирует ли печать антивирус (например, Kaspersky или ESET могут ограничивать доступ к портам принтера).
Автоматизация: создание скрипта для удаления
Если вам регулярно приходится удалять принтеры (например, в офисе или компьютерном классе), можно создать .bat-файл для автоматизации процесса. Пример скрипта, который удаляет принтер по имени и очищает очередь:
@echo off
:: Останавливаем службу печати
net stop spooler
:: Удаляем принтер (замените "HP LaserJet" на ваше имя)
rundll32 printui.dll,PrintUIEntry /dl /n "HP LaserJet"
:: Очищаем очередь печати
del %systemroot%\System32\spool\PRINTERS\* /Q
:: Перезапускаем службу
net start spooler
echo Принтер успешно удалён!
pause
Сохраните этот код в файл с расширением .bat и запускайте от имени администратора. Для удаления нескольких принтеров добавьте дополнительные строки с командой rundll32.
Для доменных сред можно использовать PowerShell-скрипт, который удаляет принтеры на нескольких ПК удалённо:
Invoke-Command -ComputerName PC1,PC2 -ScriptBlock {
Remove-Printer -Name "HP LaserJet"
Restart-Service -Name Spooler -Force
}
Скрипты экономят время, но всегда тестируйте их на одном компьютере перед массовым запуском. Ошибка в имени принтера или пути может привести к удалению не тех данных!
FAQ: Частые вопросы по удалению принтеров через CMD
Можно ли удалить принтер через CMD, если он подключён по USB?
Да, тип подключения не важен. Главное — знать точное имя принтера. USB-принтеры удаляются теми же командами, что и сетевые. Однако после удаления может потребоваться физически отключить устройство от порта, чтобы Windows не установила его заново при следующем подключении.
Почему команда wmic printer delete не работает?
Это может происходить по нескольким причинам:
- Служба
WinMgmtотключена (проверьте черезservices.msc). - Имя принтера указано неверно (пробуйте с кавычками и экранированием).
- У вас недостаточно прав (запускайте CMD от имени администратора).
Попробуйте альтернативный метод с printui.dll.
Как удалить все принтеры сразу?
Используйте команду:
wmic printer get name | findstr /v "Name" | wmic printer where name="%i" delete
Или для PowerShell:
Get-Printer | Remove-Printer
Внимание: это удалит все принтеры, включая виртуальные (например, Microsoft Print to PDF).
Что делать, если после удаления принтер появляется снова?
Это типично для принтеров, установленных через Group Policy или облачные службы (например, Google Cloud Print). Проверьте:
- Настройки доменной политики (если ПК в домене).
- Задачи в
Планировщике заданий(иногда принтеры устанавливаются автоматически через скрипты). - Реестр по пути
HKCU\Printers\Connections— удалите сохранённые подключения.
Можно ли удалить драйвер принтера без удаления самого принтера?
Да, для этого используйте pnputil. Сначала найдите имя .inf-файла драйвера:
pnputil /enum-drivers
Затем удалите его:
pnputil /delete-driver oem12.inf /uninstall
Принтер останется в системе, но перестанет работать до установки нового драйвера.