Удаление принтера через командную строку или терминал может сэкономить время, особенно когда графический интерфейс Windows или macOS отказывается корректно удалять устройство. Чаще всего такая необходимость возникает при «зависании» драйверов, конфликтах очереди печати или когда принтер HP LaserJet, Canon PIXMA или Epson EcoTank отображается в системе как подключённый, но на самом деле давно отключён физически. В этой статье разберём 5 проверенных способов удаления принтеров через команды — от стандартных утилит до скриптов для массового очищения системы.
Особенно актуальна тема для сетевых МФУ, которые «застревают» в реестре после некорректного отключения от домена, или для виртуальных принтеров типа Microsoft XPS Document Writer, которые мешают работе реальных устройств. Мы не будем ограничиваться базовыми инструкциями — рассмотрим нюансы для разных ОС, включая Windows 10/11, Linux (Ubuntu/Debian) и macOS, а также разберём, как полностью очистить систему от «призраков» старых драйверов.
1. Удаление принтера через CMD в Windows
Классический способ для пользователей Windows — использование командной строки (cmd.exe) с утилитой printui.dll. Этот метод работает даже когда принтер не отображается в панели управления, но занимает порт или конфликтует с новым устройством.
Чтобы удалить принтер через CMD:
- Откройте командную строку от имени администратора (нажмите
Win + X→Терминал (Администратор)). - Введите команду для вывода списка всех установленных принтеров:
rundll32 printui.dll,PrintUIEntry /glВ открывшемся окне найдите имя нужного принтера (например, Brother HL-L2350DW series).
- Удалите принтер командой (замените
NAMEна реальное имя):rundll32 printui.dll,PrintUIEntry /dl /n "NAME"Например:
rundll32 printui.dll,PrintUIEntry /dl /n "Canon MG3600 series".
Если принтер не удаляется с первого раза, проверьте, не заблокирован ли он процессом spoolsv.exe (служба очереди печати). В этом случае сначала перезапустите службу:
net stop spooler
net start spooler
Открыть CMD от имени администратора|Проверить имя принтера через /gl|Запустить команду /dl с правильным именем|Перезапустить службу spooler при ошибке-->
⚠️ Внимание: Если имя принтера содержит пробелы или специальные символы (например, Kyocera Ecosys P3155dn KX), обязательно заключите его в кавычки. Без кавычек команда завершится ошибкой 0x0000000d.
2. Удаление через PowerShell (для опытных пользователей)
PowerShell предлагает более гибкие инструменты для управления принтерами, включая возможность массового удаления или очистки по фильтрам (например, удалить все принтеры Xerox). Этот способ полезен для администрирования нескольких ПК в сети.
Основные команды:
- 📋 Просмотр всех принтеров:
Get-Printer | Format-Table Name, DriverName, PortNameОбратите внимание на столбец
PortName— если порт занят несуществующим устройством, его тоже нужно очистить. - 🗑️ Удаление одного принтера:
Remove-Printer -Name "Имя_принтера"Пример:
Remove-Printer -Name "Samsung SL-M2020W". - 🧹 Массовое удаление (по драйверу или порту):
Get-Printer | Where-Object {$_.DriverName -like "HP"} | Remove-PrinterЭта команда удалит все принтеры с драйверами, в имени которых есть HP.
Для полной очистки системы от «призраков» принтеров также удалите соответствующие порты:
Get-PrinterPort | Where-Object {$_.Name -like "IP_*"} | Remove-PrinterPort
Если PowerShell выдаёт ошибку Access Denied, запустите его от имени администратора или используйте параметр -Force в команде Remove-Printer.
3. Удаление принтера в Linux (Ubuntu/Debian)
В Linux принтеры управляются через систему CUPS (Common Unix Printing System). Для удаления устройства через терминал используйте команду lpadmin или утилиту cupsdisable (если принтер временно отключён, но не удалён).
Пошаговая инструкция:
- Проверьте список установленных принтеров:
lpstat -p -dВ выводе найдите имя принтера (например, EPSON_L3250) и его статус.
- Удалите принтер командой:
sudo lpadmin -x Имя_принтераПример:
sudo lpadmin -x Brother_DCP-L2540DW. - Если принтер был сетевым, удалите его из конфигурации CUPS:
sudo cupsdisable Имя_принтераsudo cupsreject Имя_принтера
Для полной очистки также удалите файлы конфигурации:
sudo rm /etc/cups/ppd/Имя_принтера.ppd
⚠️ Внимание: В некоторых дистрибутивах (например, Fedora или Arch Linux) путь к файлам конфигурации может отличаться. Проверьте расположение через команду find /etc -name "*.ppd".
4. Удаление сетевого принтера (IP-принтера)
Сетевые принтеры (подключённые по TCP/IP, LPD или IPP) часто остаются в системе даже после физического отключения от сети. Их удаление требует дополнительных шагов, так как они привязаны к конкретному IP-адресу или имени хоста.
В Windows:
- 🌐 Откройте
Панель управления → Устройства и принтеры. - 🔍 Найдите принтер с пометкой
TCP/IPв свойствах порта. - 🗑️ Удалите его через контекстное меню, а затем очистите порт командой:
printui /s /t2(в открывшемся окне выберите порт и удалите его вручную).
В Linux/macOS:
- 📡 Проверьте сетевые принтеры через:
lpstat -v - 🔌 Удалите принтер и порт одной командой:
sudo lpadmin -x Принтер_Имяsudo lpadmin -x порт/Имя_порта
| Тип подключения | Команда для Windows | Команда для Linux/macOS |
|---|---|---|
| Локальный (USB) | rundll32 printui.dll,PrintUIEntry /dl /n "Имя" |
sudo lpadmin -x Имя |
| Сетевой (TCP/IP) | printui /s /t2 → удалить порт |
sudo lpadmin -x Имя |
| Виртуальный (XPS, PDF) | Remove-Printer -Name "Microsoft XPS Document Writer" |
sudo lpadmin -x "Virtual_PDF" |
5. Очистка реестра и драйверов после удаления
Даже после удаления принтера его драйвера и настройки могут оставаться в реестре Windows, что приводит к конфликтам при установке нового устройства. Для полной очистки:
Способы очистки:
- 🔧 Через
Print Management:- Откройте
Панель управления → Администрирование → Управление печатью. - В разделе
Драйверынайдите устаревшие драйвера и удалите их.
- Откройте
- 📜 Ручная очистка реестра:
- Откройте
regedit(Win + R →regedit). - Перейдите в раздел:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\PrintersУдалите папку с именем принтера.
- Очистите очередь печати:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Environments\Windows x64\Print Processors\winprint
- Откройте
Что будет если не очистить реестр?
Остаточные записи в реестре могут вызывать ошибки 0x0000007e или 0x00000057 при установке нового принтера, а также дублирование портов. В некоторых случаях Windows будет «видеть» старый принтер как подключённый, хотя физически его нет.
Критическая информация: Перед редактированием реестра обязательно создайте точку восстановления системы (Win + R → rstrui). Неправильные изменения могут привести к сбою службы печати.
Локальный (USB)|Сетевой (Wi-Fi/Ethernet)|Виртуальный (PDF/XPS)|Не знаю, какой у меня принтер-->
6. Автоматизация: скрипты для массового удаления
Если вам нужно удалить десятки принтеров (например, после миграции офиса или смены парка МФУ), ручные методы неэффективны. В этом случае поможет скрипт на PowerShell или Bash.
Пример скрипта для Windows (сохраните как remove-printers.ps1):
# Удаляет все принтеры с именами, содержащими "HP" или "Canon"
$printers = Get-Printer | Where-Object { $_.Name -match "HP|Canon" }
foreach ($printer in $printers) {
Write-Host "Удаляю принтер: $($printer.Name)"
Remove-Printer -Name $printer.Name -Force
Start-Sleep -Seconds 1
}
Write-Host "Готово! Удалено $($printers.Count) принтеров."
Для Linux (Bash-скрипт):
#!/bin/bash
Удаляет все принтеры с портами, начинающимися на "192.168."
for printer in $(lpstat -p | awk '{print $2}'); do
port=$(lpoptions -l -p $printer | grep "Device URI" | awk '{print $3}')
if [[ $port == "192.168." ]]; then
echo "Удаляю принтер $printer (порт: $port)"
sudo lpadmin -x $printer
fi
done
Скрипты можно адаптировать под свои нужды, например, добавив удаление конкретных драйверов или очистку портов. Для запуска PowerShell-скрипта используйте команду:
Set-ExecutionPolicy Bypass -Scope Process -Force
.\remove-printers.ps1
Скрипты экономят время при массовом удалении, но тестируйте их на одном принтере перед запуском на всех устройствах. Ошибки в скриптах могут удалить рабочие принтеры!
Частые ошибки и их решения
При удалении принтеров через команды пользователи часто сталкиваются с типовыми ошибками. Разберём самые распространённые и способы их исправления.
| Ошибка | Причина | Решение |
|---|---|---|
0x0000000d |
Неверное имя принтера (пробелы, символы) | Заключите имя в кавычки: "/n "Имя принтера" |
Access Denied |
Недостаточно прав | Запустите CMD/PowerShell от имени администратора |
RPC server is unavailable |
Служба spooler не работает |
Перезапустите службу: net start spooler |
lpadmin: Unauthorized (Linux) |
Недостаточно прав в CUPS | Добавьте пользователя в группу lpadmin: sudo usermod -aG lpadmin $USER |
Если принтер не удаляется ни одним из способов, проверьте:
- 🔌 Физическое подключение: Отсоедините USB-кабель или отключите принтер от сети.
- 🔄 Перезагрузку: Иногда помогает банальная перезагрузка ПК.
- 🛠️ Сторонние утилиты: Программы вроде Printer Migration Tool (от Microsoft) или CCleaner могут очистить остаточные файлы.
⚠️ Внимание: На некоторых корпоративных ПК политики домена могут блокировать удаление принтеров. В этом случае обратитесь к системному администратору — самостоятельные действия могут нарушить групповую политику.
FAQ: Ответы на частые вопросы
Можно ли удалить принтер через командную строку, если он не отображается в «Устройствах и принтерах»?
Да, это одна из основных причин использования командной строки. даже если принтер не виден в графическом интерфейсе, он может оставаться в системе как «призрак». Используйте команду rundll32 printui.dll,PrintUIEntry /gl (Windows) или lpstat -a (Linux), чтобы найти скрытые устройства.
Как удалить принтер, если команда выдаёт ошибку 0x00000057?
Ошибка 0x00000057 («Параметр задан неверно») обычно означает, что имя принтера указано некорректно. Проверьте:
- Имя принтера точно соответствует выводу команды
/gl(включая пробелы и регистр). - Имя заключено в кавычки, если содержит пробелы:
"/n "HP OfficeJet Pro 9010". - Попробуйте удалить принтер по порту (найдите порт через
printui /s /t2).
После удаления принтера он снова появляется при перезагрузке. Почему?
Это типичная проблема для сетевых принтеров, которые автоматически устанавливаются через:
- Групповую политику домена (в офисных сетях).
- Службу Web Services for Devices (WSD) в Windows.
- Функцию Bonjour на macOS.
Решения:
- В Windows отключите автоматическую установку устройств:
Панель управления → Устройства и принтеры → Параметры установки устройств → Нет, предоставить возможность выбора. - В Linux/macOS отключите Avahi или Bonjour.
Как удалить виртуальный принтер (например, Microsoft XPS Document Writer)?
Виртуальные принтеры удаляются так же, как физические, но их драйвера часто встроены в систему. В Windows:
- Удалите принтер командой:
Remove-Printer -Name "Microsoft XPS Document Writer" - Отключите функцию (если не нужна):
Dism /online /Disable-Feature /FeatureName:Printing-XPSServices-Features - Перезагрузите ПК.
В Linux виртуальные принтеры (например, CUPS-PDF) удаляются через lpadmin -x, но пакет cups-pdf нужно удалить через apt или yum.
Можно ли восстановить принтер после удаления через команду?
Да, но это зависит от способа удаления:
- Если принтер был удалён только из списка устройств (команды
/dlилиlpadmin -x), его можно снова добавить черезПанель управленияилиlpadmin -p -E -v. - Если были удалены драйвера или записи в реестре, потребуется переустановка ПО с официального сайта производителя.
- Для сетевых принтеров достаточно повторно ввести IP-адрес в мастере добавления.
Совет: перед удалением экспортируйте настройки принтера через PrintBRM (Windows) или lpoptions -l -p Принтер > settings.txt (Linux).