Поиск принтера через командную строку — незаменимый навык для системных администраторов, 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 (см. следующий раздел).
📊 Какой метод поиска принтера вы используете чаще?
Графический интерфейс Windows
Командная строка (CMD)
PowerShell
Терминал Linux
Другое

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).
  • 🌐 Диапазон IP192.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), но он не отображается в системе, попробуйте следующие шаги:

  1. Проверка доступности:
    ping 192.168.1.100

    Если ответов нет, принтер может быть выключен или заблокирован фаерволом.

  2. Проверка портов:
    telnet 192.168.1.100 9100

    Если соединение установлено, принтер поддерживает протокол JetDirect.

  3. Добавление вручную (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 не показывает сетевой принтер?

Это происходит, если принтер не установлен в системе как локальное устройство. Чтобы его добавить:

  1. Узнайте IP-адрес принтера (например, через роутер или наклейку на корпусе).
  2. В Windows перейдите в Устройства и принтеры → Добавление принтера → Добавить сетевой принтер по TCP/IP-адресу.
  3. В 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 вручную.
  • Конфликт драйверов. Удалите принтер и установите его заново с официального сайта производителя.
  • Блокировка антивирусом. Временно отключите защиту и проверьте печать.