Удаленная установка принтера через командную строку

Обновлено: 20.11.2024

Установка принтеров из командной строки Windows может оказаться сложной задачей, особенно если вы пытаетесь сохранить молчание. Для этого я использовал несколько методов.

Раньше мне нравились сценарии prndrvr.vbs, prnmngr.vbs и prncnfg.vbs, которые уже много лет существуют в Windows. Моя текущая проблема с ними является результатом использования System Center Configuration Manager. При установке приложений для всей системы (всех пользователей) SCCM будет запускать установку от встроенного в Windows пользователя SYSTEM. SYSTEM подходит для большинства запусков, но некоторые из вышеупомянутых сценариев Visual Basic не будут выполняться при запуске от имени пользователя SYSTEM (см. сообщение «Выполнить командную строку от имени NT AUTHORITY\SYSTEM» для тестирования приложений SCCM, чтобы узнать, как тестировать такие вещи< /em>).

Мой последний метод включает использование PRINTUI.DLL с RUNDLL32.EXE, которые также являются родными инструментами Windows. Я обнаружил, что этот метод работает правильно даже от имени пользователя SYSTEM, поэтому я до сих пор использую его для установки своих принтеров. Давайте углубимся…

Импортировать сертификат

В первую очередь: сертификаты. Большинству принтеров сертификат не требуется. Но если это так, нам нужно будет использовать команду для импорта сертификата перед установкой принтера.

Чтобы узнать, нужен ли вам сертификат, установите принтер в тестовой среде и посмотрите, отображается ли запрос сертификата, как показано ниже:

Если это так, нажмите кнопку «Установить» и завершите установку принтера.

Затем откройте «Пуск» > «Управление сертификатами компьютера». На левой панели перейдите в раздел «Сертификаты» — «Локальный компьютер» > «Доверенные издатели» > «Сертификаты», где должен быть указан недавно установленный сертификат:

Щелкните сертификат правой кнопкой мыши и выберите Все задачи > Экспорт. Продолжите работу с мастером экспорта сертификатов, используя двоичный формат с кодировкой DER, и сохраните сертификат как что-то вроде: Certificate.cer

После получения файла сертификата для импорта сертификата будет использоваться следующая команда:

Теперь мы готовы установить принтер.

Создать порт принтера TCP/IP

Прежде чем мы сможем установить принтер, мы должны создать для него порт. Эта команда создаст IP-порт, заменив два «IP-адреса принтера» на IP-адрес или имя хоста принтера:

Установить принтер

Создав порт, мы можем работать над установкой принтера. Для этого потребуется INF-файл драйвера принтера (файл с информацией об установке), а также может потребоваться распаковка или просмотр загружаемых драйверов.

Например, принтер Sharp, с которым я недавно работал, использует файл драйвера su0emenu.inf, который я нашел в извлеченных драйверах с их веб-сайта:

Также необходимо определить имя конкретного драйвера. Это можно узнать, открыв в текстовом редакторе INF-файл и вытащив строку имени драйвера (это может быть сложно), поэтому еще один более простой способ — установить принтер в тестовой среде, а затем посмотреть в драйвере, который он использует, в разделе «Свойства принтера» > «Дополнительно».

В моем случае Sharp это был SHARP MX-M4070 PCL6:

Теперь эта вторая команда будет использоваться для установки принтера, разумеется, заменяя значения параметров правильной информацией:

На этом этапе принтер будет установлен, но только с настройками по умолчанию.

Импортировать пользовательские настройки

Для таких параметров, как параметры лотка, тип бумаги и цветовые режимы, будут установлены заводские значения по умолчанию. Эти параметры не всегда нужно настраивать, но если это необходимо, их можно настроить, экспортировать и импортировать в принтер. Это особенно полезно для Sharps, которые требуют, чтобы их запатентованная автоматическая конфигурация была завершена, чтобы получить полную функциональность.

ПРИМЕЧАНИЕ. В Windows 10 версии 1909 я видел, что файлу DAT не удалось импортировать некоторые номера пользователей принтеров Sharp. Параметр использования номера пользователя по-прежнему выбран после импорта, но сам номер пользователя не заполняется и не будет работать.

Сначала установите принтер в тестовой среде. Откройте свойства принтера и при необходимости настройте любые параметры. Я обнаружил, что изменения настроек принтера, сделанные из меню «Настройки печати», похоже, не экспортируются, поэтому лучше настройте настройки принтера, выбрав «Свойства принтера» > «Дополнительно» (вкладка) > «Параметры печати по умолчанию» (что дает все те же параметры, что и «Настройки печати»).

После того, как все настроено, следующая команда экспортирует настройки в файл DAT, заменив «Printer-Display-Name» правильной информацией:

Теперь файл DAT, созданный в папке C:\PrintSettings.dat, можно использовать для импорта настроек на только что установленный принтер с помощью аналогичной команды:

На этом этапе создается порт принтера, устанавливается принтер и импортируются пользовательские настройки. Настройка принтера должна быть полностью функциональной и готовой к использованию.

Удалить принтер

Если принтер необходимо удалить, используйте простую однострочную команду:

Обратите внимание, что эта команда удаляет только принтер, но не порт принтера. Таким образом, эту команду можно использовать для удаления любого типа принтеров, даже тех, которые используют локальные порты принтера.

Обнаружение принтера

Используете что-то вроде SCCM и хотите определить, успешно ли установлен принтер? Windows создает удобный раздел реестра по адресу: HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers\Printer-Display-Name

Чтобы сделать еще один шаг вперед, вы можете проверить в этом ключе строковое значение Port и убедиться, что оно совпадает с IP-адресом/именем хоста принтера, которые использовались для создания порта. Это поможет избежать случайного обнаружения других принтеров с тем же именем, но с другим портом.

Используйте пакетный скрипт для упрощения

Поскольку я постоянно использую эти команды, я упростил задачу, создав пакетный сценарий, в котором я могу просто настроить переменные для любой новой установки принтера, и команды ссылаются на них. Скопируйте и вставьте следующий код в файл .BAT, затем отредактируйте переменные нужным образом:

Сегодня мы поговорим о возможностях управления принтерами и их драйверами из командной строки в Windows 10/8.1 и Windows Server 2012 R2/2016. Мы рассмотрим, как установить новый локальный или сетевой принтер, драйвер принтера, создать порт печати TCP/IP, печать тестовой страницы, удаление драйвера или принтера с помощью простых команд Windows. Это может быть полезно в различных сценариях автоматической установки принтера в задачах SCCM, сценариях входа в групповые политики и на серверах, работающих в режиме Server Core.

Готовые к использованию сценарии VBS для управления принтерами в Windows

Для управления принтерами корпорация Майкрософт разработала несколько сценариев VBS, которые позволяют управлять принтерами и очередями печати, устанавливать и удалять драйверы принтеров и т. д.

Эти сценарии присутствуют во всех версиях Windows (начиная с Vista и Windows Server 2008) и расположены в каталоге C:\Windows\System32\Printing_Admin_Scripts\en-US.

  1. Вместо каталога en-US может быть другой каталог, соответствующий языку системы;
  2. В Windows XP и 2003 эти сценарии VBS хранятся в каталоге C:\WINDOWS\system32.

В этой папке находятся следующие сценарии VBS:

  • Prncnfg.vbs — скрипт для отображения информации о настройках принтера;
  • Prndrvr.vbs – управление драйверами принтеров (установка/удаление драйверов принтеров);
  • Prnjobs.vbs — управление заданиями на печать;
  • Prnmngr.vbs — управление принтерами (включая создание и удаление принтеров в системе);
  • Prnport.vbs — управление подключением к удаленному принтеру через порты TCP/IP;
  • Prnqctl.vbs — управление очередью печати;
  • Pubprn.vbs — управление публикацией принтеров в Active Directory.

Примечание. Одним из известных способов управления принтерами в разных версиях Windows является хост-процесс rundll32.exe, который получает имя библиотеки printui.dll и точку входа в нее (PrintUIEntry). Команда rundll32 printui.dll,PrintUIEntry достаточна для выполнения базовых операций с принтерами и полностью поддерживается Microsoft, но с точки зрения администратора предпочтительнее использование указанных vbs-скриптов.

Давайте рассмотрим типичные сценарии использования этих VBS-скриптов.

Как установить драйвер принтера из командной строки?

Разрешения на установку и настройку локальных принтеров доступны для членов следующих локальных групп: администраторы, операторы печати или группы серверов.

Установите драйвер принтера HP с помощью команды:
cscript "C:\Windows\System32\Printing_Admin_Scripts\en-US\prndrvr.vbs" -a -m "HP Universal Printing PCL 6" -i "C :\drv\Универсальный драйвер печати HP\hpcu160u.inf"

Рассмотрим параметры команды:

-a — добавить драйвер принтера;

-m «HP Universal Printing PCL 6» — имя драйвера принтера;

-i «путь» — полный путь к INF-файлу драйвера.

После установки драйвера он отображается в свойствах сервера печати (Панель управления\Оборудование и звук\Устройства и принтеры -> Свойства сервера печати).

Как добавить новый принтер из командной строки?

С помощью следующей команды можно установить новый принтер с именем HP5525, используя ранее установленный драйвер печати HP Universal Printing PCL 6:
cscript "C:\Windows\System32\Printing_Admin_Scripts\en-US\prnmngr.vbs " -a -p "HP5520" -m "HP Universal Printing PCL 6" -r "lpt1:"

-a — установлен новый локальный принтер;

-p «HP5520» — отображаемое имя принтера;

-m «HP Universal Printing PCL 6» — используемый драйвер печати;

-r «lpt1:» — имя используемого локального порта печати. В этом случае печать должна выполняться через порт LPT. Здесь вы можете указать параллельный порт (LPT1:, LPT2:), последовательный (COM1:, COM2: — перед установкой убедитесь, что этот COM-порт не используется другим устройством) или USB-порт (USB001 и т. д.).< /p>

Управление принтером по умолчанию с помощью CMD

В командной строке вы можете выбрать, какой принтер использовать для печати по умолчанию. С помощью следующей команды вы можете вывести список всех установленных принтеров:

cscript "C:\Windows\System32\Printing_Admin_Scripts\en-US\prnmngr.vbs" –l

Вы можете получить имя текущего принтера по умолчанию:

cscript "C:\Windows\System32\Printing_Admin_Scripts\en-US\prnmngr.vbs" –g

Принтер по умолчанию — HP Universal Printing PCL 6 (перенаправленный 1)

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

cscript "C:\Windows\System32\Printing_Admin_Scripts\en-US\prnmngr.vbs" -t –p "HP5525"

Как создать порт TCP/IP для сетевого принтера?

Если вы хотите подключить сетевой принтер, вы должны сначала создать для него порт принтера TCP/IP (предположим, что IP-адрес принтера — 192.168.1.22):
cscript "C:\Windows\System32\Printing_Admin_Scripts \en-US\Prnport.vbs" -a -r IP_192.168.1.22 -h 192.168.1.22 -o raw -n 9100
-r IP_192.168.1.22 – имя сетевого порта;

-h 192.168.1.22 — IP-адрес устройства;

-o raw — тип порта (raw или lpr);

-n 9100 — номер TCP-порта устройства (обычно 9100).

А затем вы можете установить в системе новый сетевой принтер:
cscript "C:\Windows\System32\Printing_Admin_Scripts\en-US\prnmngr.vbs" -a -p "HP5525" -m "HP Universal Printing PCL 6" -r " IP_192.168.1.22"
После завершения скрипта в системе появляется новый принтер HP5525.

Как распечатать тестовую страницу из CMD?

Чтобы распечатать тестовую страницу на созданном принтере, выполните следующие действия:
cscript "C:\Windows\System32\Printing_Admin_Scripts\en-US\prnqctl.vbs" -e -p "HP5525"< /p>

Управление очередями печати из командной строки

С помощью сценария prnjobs.vbs можно просматривать задания на печать в очередях. Чтобы отобразить все задания печати для всех локальных принтеров, выполните команду:
cscript "C:\Windows\System32\Printing_Admin_Scripts\en-US\prnjobs.vbs" –l

Для отображения заданий на конкретном принтере необходимо указать его имя:

cscript "C:\Windows\System32\Printing_Admin_Scripts\en-US\prnjobs.vbs" –l –p HP5525

Чтобы очистить очередь печати на одном принтере, выполните следующую команду:

cscript "C:\Windows\System32\Printing_Admin_Scripts\en-US\prnjobs.vbs" –x –p HP5525

Или можно быстро очистить все очереди для всех принтеров (это намного удобнее, чем чистить очереди печати вручную):

cscript "C:\Windows\System32\Printing_Admin_Scripts\en-US\prnjobs.vbs" –x

Общий доступ к сетевому принтеру с помощью командной строки

Все новые принтеры, установленные в Windows из командной строки, являются локальными. Вы можете поделиться ими с другими пользователями по сети из графического интерфейса Windows (см. статью). Вы также можете предоставить общий доступ к принтеру из командной строки. Например, вы хотите предоставить сетевой доступ к вашему принтеру HP5525, опубликовав его под именем HP5525_Shared. Используйте команду:

cscript "C:\Windows\System32\Printing_Admin_Scripts\en-US\prncnfg.vbs” -t -p HP5525 -h "HP5525_Shared" +общий

Чтобы отключить общий доступ к принтеру, выполните:

cscript "C:\Windows\System32\Printing_Admin_Scripts\en-US\prncnfg.vbs" -t -p "HP5525" -shared

Аналогичным образом вы можете опубликовать принтер в Active Directory:

cscript "C:\Windows\System32\Printing_Admin_Scripts\en-US\prncnfg.vbs" -t -p HP5525 +опубликовано

Чтобы удалить принтер из AD, используйте аргумент «-published».

Как добавить сетевой принтер через командную строку?

Чтобы подключить общий сетевой принтер к другому компьютеру, используйте
команду:

cscript "C:\Windows\System32\Printing_Admin_Scripts\en-US\prnmngr.vbs" -ac -p "\\rome-prnt01\hp2100"

Довольно частые ошибки при подключении сетевых принтеров — 0x00000002, 0x00000057 и 0x0000007e. Способы устранения ошибок доступны по ссылкам выше.

Как удалить принтер и его драйвер из командной строки?

Полный список принтеров в системе может отображаться следующим образом:

cscript "C:\Windows\System32\Printing_Admin_Scripts\en-US\prnmngr.vbs" -l

Принтер можно удалить с помощью следующей команды:
cscript "C:\Windows\System32\Printing_Admin_Scripts\en-US\prnmngr.vbs" -d -p "HP5525"
Драйвер печати удаляется следующим образом:
cscript "C:\Windows\System32\Printing_Admin_Scripts\en-US\prndrvr.vbs" -d -m "HP Universal Printing PCL 6" -e "Windows x64" -v 3

В этой статье мы рассмотрели основные операции со старыми добрыми скриптами Microsoft VBS, которые позволяют управлять принтерами и их драйверами из командной строки в различных версиях Windows. Полный список возможностей и аргументов этих скриптов доступен в документации Microsoft или во встроенной справке сценариев (достаточно запустить файл скрипта без параметров в командной строке).

В следующей статье мы представим новые возможности управления принтерами в Windows 10 / 8.1 и Windows Server 2016 / 2012 R2, предоставляемые PowerShell.

Вы можете установить сетевые принтеры из командной строки или с помощью пакетного файла без необходимости доступа локального администратора. Таким образом, пользователи могут, например, установить локальный сетевой принтер на свой ноутбук, когда они находятся на удаленном сайте. Это будет работать с Win 7 и выше до 10, и вам не нужно ничего устанавливать. Используемые сценарии по умолчанию устанавливаются в папку C:\Windows\System32\Printing_Admin_Scripts.

Для установки принтера необходимо выполнить 3 шага. Старайтесь использовать как можно больше общих драйверов, чтобы упростить установку.

Если вы хотите использовать PowerShell, обязательно прочтите этот пост

Шаг 1. Установите драйвер

Загляните в файл INF, чтобы узнать правильное имя используемого драйвера.

Шаг 2. Добавьте порт принтера

Шаг 3. Добавьте принтер

Похожие записи

Как быстро исправить ERR_CONNECTION_TIMED_OUT

Быстро исправить DNS_PROBE_FINISHED_BAD_CONFIG в Chrome

Исправить «ERR_NAME_NOT_RESOLVED» в Chrome

3 мысли о «Установка и добавление сетевых принтеров из командной строки»

Я пробовал этот метод, и хотя сначала мне нравилось, как легко было создавать сценарии для дополнительных принтеров, оказалось, что некоторые компьютеры требуют перезагрузки, чтобы сценарий заработал, а другие нет. Я не уверен, почему это так, и пробовал разные способы запуска команд, и по какой-то причине все еще сталкивался с этим на большинстве компьютеров.

Вы тоже обнаружили, что это так?

В последнее время я использую только версию сценария PowerShell. Но я могу себе представить, что, возможно, служба диспетчера очереди печати блокирует установку. Пробовали ли вы сначала перезапустить службу очереди печати?

Как узнать, какой INF-файл использовать? У нас есть около 8 файлов с расширением .inf. Кроме того, должно ли имя драйвера совпадать с именем в файле .inf или вы можете просто назвать его любым именем? Если он должен совпадать, где в файле .inf вы берете имя драйвера? Спасибо.

Оставить комментарий Отменить ответ

Привет! Я Рууд. Я работаю системным администратором в Нидерландах и люблю писать об ИТ, Office 365, умном доме и PowerShell. Подпишитесь на меня в Twitter или LinkedIn

Привет, ребята, может ли кто-нибудь помочь мне с этим или указать мне правильное направление?Я хотел бы удаленно установить принтер, который находится на сервере общих принтеров. Как я могу сделать это удаленно, не мешая пользователям?

Участвуйте в еженедельном розыгрыше Amazon GC, наушников и динамика стоимостью 25 евро!

Конкурс завершается 20 марта 2022 г. Конкурсы Каждую неделю узнайте больше о том, как Red Hat может помочь вам добиться простоты и цифровых инноваций, и ответьте на вопрос. Детали конкурса Просмотреть все конкурсы

Роб Данн

Вы можете запустить psexec, используя командный файл и простую команду 'start \\server\printqueuename' или аналогичный VBScript, но, если вы не знаете пароль пользователя, это действительно не сработает.

15 ответов

Роб Данн

Вы можете запустить psexec, используя командный файл и простую команду 'start \\server\printqueuename' или аналогичный VBScript, но, если вы не знаете пароль пользователя, это действительно не сработает.

Вы можете развернуть принтеры с помощью групповой политики. проверьте оснастку управления печатью для MMC.

Кроме того, это можно сделать и с помощью сценария входа. Я развертываю свои принтеры таким образом, поскольку в конце дня все должны регистрировать/выключать ПК.

Один из способов сделать это — использовать этот файл .vbs

скопируйте его на локальный компьютер или разместите в сети. Затем используйте psexec или запланированную задачу, чтобы запустить ее на удаленном компьютере.

Полагаю, это решение подходит только для быстрой установки, когда пользователь активен. GP или сценарий входа в систему были бы гораздо лучшим вариантом. Но если вы в затруднительном положении.

Я только вчера использовал этот скрипт на нескольких машинах, чтобы добавить принтер. Я поместил его в папку запуска всех пользователей, но его можно было применить через GP.

При входе в систему пользователи ненадолго увидят окно cmd, но оно быстро исчезнет.

Роб Данн

Вы можете развернуть принтеры с помощью групповой политики. проверьте оснастку управления печатью для MMC.

Кроме того, вы также можете сделать это с помощью сценария входа в систему. Я развертываю свои принтеры таким образом, поскольку в конце дня все должны регистрировать/выключать ПК.

Для этого ему потребуется схема 2003 R2 (или выше), но это правильно.

Но как мне сделать это с моего компьютера из CMD?

Роб Данн

Но как мне сделать это с моего компьютера из CMD?

Попробуйте маршрут PSEXEC. Я не уверен, насколько хорошо это будет работать, поскольку технически вы будете устанавливать принтер как пользователь, подключающийся к PSEXEC (то есть вы) или системной учетной записи, но вы можете попробовать.

Но как мне сделать это с моего компьютера из CMD?

Не совсем уверен в этом, но если вы являетесь администратором, вы должны иметь доступ к общему ресурсу C$ на компьютере, поместите один из сценариев в автозагрузку отдельного (или всех пользователей). При следующем входе в систему принтер будет добавлен.

Чтобы получить доступ к местоположению для размещения сценария, откройте следующее окно проводника (измените имя_компьютера на имя нужного компьютера). Примечание. Это для всех пользователей, при необходимости измените.

\\имя компьютера\c$\Documents and Settings\All Users\Главное меню\Программы\Автозагрузка

В командной строке введите следующее (внесите необходимые изменения):

  • Примечание. Убедитесь, что сценарий сохранен на вашем компьютере или в сетевой папке, а приведенная ниже команда указывает правильное расположение.

xcopy "C:\Scripts\scriptname.bat" "\\computername\c$\Documents and Settings\All Users\Start Menu\Programs\Startup\scriptname.bat" /s /i /y

При запросе файла или каталога нажмите "F" для выбора файла.

При этом сценарий будет скопирован в папку запуска всех пользователей сетевого компьютера. При следующем входе в систему принтер будет добавлен.

С помощью инструментов sysinternals и Центра управления системой Windows вы можете сделать это из строки cmd. Просто зайдите в Google WSCC и загрузите новейшие инструменты Sysinternals от Microsoft.

Спасибо, Вейсман, я посмотрю на это.

KS Services — поставщик ИТ-услуг.

Вы не можете использовать команду net use?

Можете ли вы объяснить это немного подробнее? Я не совсем уверен, что понимаю.

Привет, JRCIS, у вас уже есть хороший ответ и решение? Если нет, дайте нам знать, что еще вам нужно. В противном случае не забудьте отметить лучшие ответы и полезные сообщения.

Милнеси писал:

Вы можете развернуть принтеры с помощью групповой политики. проверьте оснастку управления печатью для MMC.

Кроме того, вы также можете сделать это с помощью сценария входа в систему. Я развертываю свои принтеры таким образом, поскольку в конце дня все должны регистрировать/выключать ПК.

Для этого ему потребуется схема 2003 R2 (или выше), но это правильно.

У меня работает. И да, я очень хорошо знаю, что ветка такая старая.

Эта тема заблокирована администратором и больше не открыта для комментариев.

Чтобы продолжить это обсуждение, задайте новый вопрос.

Эргономичное оборудование

Кто в США должен нести ответственность за предоставление эргономичного оборудования по запросу сотрудника? Это ИТ, поскольку ИТ предоставляет клавиатуры и мыши? Должен ли это быть HR, поскольку он эргономичен и несет потенциальную ответственность, если НЕ предоставляется? Должен ли это быть тот отдел.

Приветствие Xfinity (личный домашний Интернет)

Во-первых, мне больно. Я мог бы произнести речь «Он ставит передо мной задачу», как Хан в «Звездном пути 2: Гнев Хана». Просто замените «Они» на «Он». Но они сделали то, чего я хотел годами (десятилетиями?), так что, думаю, это должно быть признано. Ю.

Щелкни! SATCOM Threat, IE End of Life, Mac с кирпичами, Planet 9, Lego Delorean

Ваша ежедневная доза технических новостей. Вы должны это услышать. ФБР и CISA предупреждают об угрозах для сетей спутниковой связи Согласно новому предупреждению ФБР и CISA спутниковые сети находятся в зоне высокого риска. Согласно ZDNet.

Какими сверхспособностями вы хотели бы обладать?

Что может сделать ИТ-специалист со сверхспособностями? В каких ИТ-задачах вы бы их использовали и как?

Можно ли подключить интерфейс управления коммутатора к одному из его собственных портов коммутатора?

Недавно я понял, что у меня есть конфигурация коммутатора с непреднамеренным потенциальным побочным эффектом. У меня есть Aruba 6300F с несколькими виртуальными локальными сетями. Он работает в режиме уровня 3. Это работает следующим образом: я просто «включаю» функции маршрутизатора, а затем.

Читайте также: