Поиск принтера через командную строку — незаменимый навык для системных администраторов, IT-специалистов и даже обычных пользователей, столкнувшихся с проблемами подключения. В отличие от графического интерфейса, команды позволяют быстро получить детальную информацию о всех установленных и сетевых устройствах печати, включая скрытые драйверы, очереди задач и IP-адреса. Особенно актуально это для корпоративных сетей, где принтеры могут быть распределены по нескольким серверам печати или подключены через сложные сетевые конфигурации.
В этой статье мы разберём 5 рабочих методов поиска принтеров с использованием встроенных утилит Windows (CMD, PowerShell, PrintUI), Linux (lpstat, cups) и кроссплатформенных инструментов вроде nmap. Вы узнаете, как найти принтер по IP-адресу, имени хоста или модели, даже если он не отображается в стандартном списке устройств. Особое внимание уделим типичным ошибкам (например, 0x00000002 или Operation could not be completed) и способам их устранения.
1. Поиск принтеров в Windows через CMD: базовые команды
Классическая командная строка (cmd.exe) предлагает несколько утилит для работы с принтерами. Самая универсальная — wmic (Windows Management Instrumentation Command-line), которая позволяет получить список всех установленных устройств вместе с их драйверами и портами.
Чтобы увидеть все принтеры, включая виртуальные (например, Microsoft XPS Document Writer), выполните:
wmic printer list brief
Для детальной информации (включая путь к драйверу и статус устройства) используйте:
wmic printer list full
- 🔍 Имя принтера — отображается в столбце
Name. - 📡 Порт — указывает тип подключения (например,
USB001илиIP_192.168.1.100). - 🚦 Статус —
OK,OfflineилиError.
Если принтер подключён по сети, но не отображается в списке, проверьте его доступность через ping:
ping 192.168.1.100
⚠️ Внимание: Командаwmicможет не показывать принтеры, подключённые через Google Cloud Print или другие облачные сервисы. Для них требуется использоватьPowerShell(см. следующий раздел).
2. Расширенный поиск через PowerShell: фильтрация и экспорт
PowerShell предоставляет больше возможностей для работы с принтерами, включая фильтрацию по имени, порту или драйверу. Например, чтобы найти все сетевые принтеры, выполните:
Get-Printer | Where-Object {$_.PortName -like "IP"} | Format-Table Name, PortName, DriverName, Shared
Для экспорта списка принтеров в CSV-файл (удобно для инвентаризации):
Get-Printer | Export-Csv -Path "C:\printers_list.csv" -NoTypeInformation
- 📤 Экспорт в CSV — позволяет анализировать данные в Excel или Google Sheets.
- 🔄 Фильтрация по драйверу — полезно для поиска устаревших драйверов (например,
Where-Object {$_.DriverName -like "Xerox"}). - 🔗 Проверка общего доступа — столбец
Sharedпоказывает, доступен ли принтер другим пользователям сети.
Если принтер не найден, попробуйте обновить список устройств:
Update-PrinterDriver -Name "Имя_драйвера"
Откройте PowerShell от имени администратора|Выполните Get-Printer для просмотра всех устройств|Используйте Where-Object для фильтрации|Экспортируйте данные в CSV при необходимости-->
3. Поиск сетевых принтеров с помощью PrintUI и netsh
Утилита PrintUI — скрытый инструмент Windows для управления принтерами через графический интерфейс, но её можно запустить и из командной строки. Например, чтобы открыть окно добавления сетевого принтера:
rundll32 printui.dll,PrintUIEntry /il
Для поиска принтеров в локальной сети используйте netsh:
netsh winsock show catalog
Эта команда покажет все сетевые протоколы, включая те, что используются принтерами (например, TCP/IP или LPR).
| Команда | Описание | Пример вывода |
|---|---|---|
PrintUI /? |
Показывает все доступные параметры утилиты | /il — добавление принтера, /dl — удаление |
netsh interface ip show config |
Отображает сетевые интерфейсы и IP-адреса | IP Address: 192.168.1.5 |
arp -a |
Показывает таблицу ARP (полезно для поиска устройств по MAC) | 192.168.1.100 00-11-22-33-44-55 dyn |
⚠️ Внимание: Команда netsh winsock reset сбрасывает сетевые настройки Windows. Не используйте её без необходимости — это может нарушить подключение к интернету.
4. Поиск принтеров в Linux: lpstat, cups и nmap
В системах на базе Linux (включая Ubuntu, Debian, CentOS) для управления принтерами используется система CUPS (Common Unix Printing System). Основные команды:
Просмотр всех принтеров и их статусов:
lpstat -a
Детальная информация о конкретном принтере (например, HP_LaserJet_P1007):
lpstat -p HP_LaserJet_P1007 -l
Для поиска сетевых принтеров в локальной подсети используйте nmap:
nmap -p 631,9100 192.168.1.0/24
- 🔍 Порт 631 — стандартный порт для
CUPS(IPP-протокол). - 🖨️ Порт 9100 — используется для прямой печати по протоколу
JetDirect(например, у принтеров HP). - 🌐 Диапазон IP —
192.168.1.0/24сканирует все адреса от192.168.1.1до192.168.1.254.
Если принтер найден, но не добавляется, проверьте права доступа:
sudo usermod -aG lpadmin $USER
Эта команда добавляет текущего пользователя в группу lpadmin, позволяющую управлять принтерами.
Как найти MAC-адрес принтера в Linux?
Используйте команду arp-scan (требует установки):
sudo arp-scan --localnet
В выводе ищите устройства с MAC-адресами производителей принтеров (например, 00:1D:0F для Xerox или 00:07:E9 для Brother).
5. Поиск принтера по IP-адресу: универсальные методы
Если вы знаете IP-адрес принтера (например, 192.168.1.100), но он не отображается в системе, попробуйте следующие шаги:
- Проверка доступности:
ping 192.168.1.100Если ответов нет, принтер может быть выключен или заблокирован фаерволом.
- Проверка портов:
telnet 192.168.1.100 9100Если соединение установлено, принтер поддерживает протокол
JetDirect. - Добавление вручную (Windows):
rundll32 printui.dll,PrintUIEntry /if /b "MyPrinter" /f %windir%\inf\ntprint.inf /r "IP_192.168.1.100" /m "HP LaserJet 4"Замените
MyPrinterна желаемое имя, аHP LaserJet 4— на модель вашего принтера.
Для Linux добавление принтера по IP выполняется через CUPS-интерфейс или команду:
lpadmin -p MyPrinter -E -v socket://192.168.1.100 -m drv:///sample.drv/brother-hl-1250.ppd
⚠️ Внимание: При добавлении принтера по IP в Windows убедитесь, что портStandard TCP/IP Portнастроен с правильным номером (обычно9100или631). Неверный порт приведёт к ошибке0x0000000d.
Если принтер не отвечает на ping, но физически подключён к сети, попробуйте отключить его от питания на 30 секунд. Многие модели Canon и Epson сбрасывают сетевые настройки при длительном удержании кнопки питания (10+ секунд).
6. Диагностика проблем: типичные ошибки и решения
При поиске принтера через команды вы можете столкнуться с ошибками. Рассмотрим самые распространённые:
| Ошибка | Причина | Решение |
|---|---|---|
0x00000002 |
Принтер не найден в сети | Проверьте IP-адрес и подключение к сети. Используйте arp -a для поиска устройства. |
Operation could not be completed (error 0x0000007a) |
Нет прав доступа | Запустите командную строку от имени администратора. |
lp: Unable to locate printer (Linux) |
Неверное имя принтера или порт | Проверьте имя командой lpstat -a и порт в /etc/cups/printers.conf. |
RPC server is unavailable |
Служба печати отключена | Запустите службу: net start spooler (Windows) или sudo systemctl restart cups (Linux). |
Если принтер найден, но не печатает, проверьте очередь задач:
lpstat -o
Для очистки очереди в Windows:
net stop spooler & del %systemroot%\System32\spool\printers\* /Q & net start spooler
Большинство ошибок подключения принтера связаны с неверными настройками порта или драйвера. Всегда начинайте диагностику с проверки сетевого подключения (ping) и статуса службы печати.
FAQ: Частые вопросы по поиску принтера через команды
Как найти принтер в сети, если неизвестен его IP-адрес?
Используйте сканирование сети с помощью nmap (Linux) или Advanced IP Scanner (Windows). Для Linux подойдёт команда:
nmap -p 9100,631 192.168.1.0/24
Для Windows скачайте Advanced IP Scanner и ищите устройства с открытыми портами 9100 или 631.
Почему команда wmic printer list не показывает сетевой принтер?
Это происходит, если принтер не установлен в системе как локальное устройство. Чтобы его добавить:
- Узнайте IP-адрес принтера (например, через роутер или наклейку на корпусе).
- В Windows перейдите в
Устройства и принтеры → Добавление принтера → Добавить сетевой принтер по TCP/IP-адресу. - В Linux используйте
lpadmin(см. раздел 4).
Можно ли найти принтер по MAC-адресу?
Да, но для этого нужно сканировать локальную сеть. В Linux используйте:
sudo arp-scan --localnet | grep -i "brother\|canon\|hp"
В Windows подойдёт утилита Wireshark или Advanced IP Scanner (включите отображение MAC-адресов в настройках).
Как экспортировать список принтеров для инвентаризации?
В Windows (PowerShell):
Get-Printer | Export-Csv -Path "C:\printers.csv" -NoTypeInformation
В Linux:
lpstat -v > printers_list.txt
Для детального отчёта в Linux используйте:
lpinfo -v & lpstat -p -d > printers_full_report.txt
Почему после команды net start spooler принтер всё равно не работает?
Возможные причины:
- Повреждённые файлы очереди печати. Очистите папку
%systemroot%\System32\spool\printersвручную. - Конфликт драйверов. Удалите принтер и установите его заново с официального сайта производителя.
- Блокировка антивирусом. Временно отключите защиту и проверьте печать.