Скрипты для принтеров windows

Содержание
  1. Управление принтерами из командной строки в Windows 10 / 8.1
  2. Готовые VBS скрипты для управления принтерами в Windows
  3. Установка драйвера принтера из командной строки
  4. Установка нового принтера из командной строки
  5. Управление принтером по-умолчанию
  6. Создаем TCP/IP порт для сетевого принтера
  7. Отправка на печать тестовой страницы
  8. Управление очередями печати из командной строки
  9. Включить общий доступ к принтеру из командной строки
  10. Как подключить сетевой принтер из командной строки
  11. Удаление принтера и драйвера печати из командной строки
  12. PowerShell: управление принтерами и драйверами печати в Windows 10 / Server 2016
  13. Модуль PowerShell: PrintManagement
  14. Установка драйвера печати в хранилище драйверов
  15. Установка нового принтера с помощью PowerShell
  16. Вывод списка принтеров на сервере печати с помощью PowerShell
  17. Подключение сетевого принтера из PowerShell
  18. Удаление принтера с помощью PowerShell

Управление принтерами из командной строки в Windows 10 / 8.1

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

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

Для управления принтерами Microsoft разработала несколько vbs скриптов, позволяющих управлять принтерами и очередями печати, устанавливать и удалять драйвера принтеров и т.д.

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

  1. Вместо каталога en-US может быть другой каталог, соответствующий языку установленной системы. Для русской версии Windows это будет каталог ru-RU (полный путь C:\Windows\System32\Printing_Admin_Scripts\ru-RU);
  2. В Windows XP и Windows Server 2003 эти vbs скрипты хранятся в каталоге C:\WINDOWS\system32.

В каталоге находятся следующие vbs скрипты:

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

Рассмотрим типовые сценарии использования этих vbs скриптов.

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

Предположим, вам необходимо установить на компьютере пользователя универсальный драйвер печати HP (HP Universal Printer Driver). Скачайте соответствующую версию драйвера с сайта производителя и распакуйте его в произвольный каталог (например, C:\drv\HP Universal Print Driver).

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

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

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

-i “путь” – полный путь к inf файлу драйвера.

После установки драйвера печати, он появится в свойствах сервера печати (Control Panel\Hardware and Sound\Devices and Printers ->Print Server Properties).

Читайте также:  Как отключить все встроенные приложения windows 10

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

С помощью следующей команды можно установить новый принтер с именем HP5525, воспользовавшись ранее установленным драйвером печати HP Universal Printing PCL 6:

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

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

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

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

Управление принтером по-умолчанию

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

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

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

cscript «C:\Windows\System32\Printing_Admin_Scripts\en-US\prnmngr.vbs» -t –р «HP5525»

Создаем TCP/IP порт для сетевого принтера

Если вы хотите подключить сетевой принтер, необходимо сначала создать для него сетевой порт (допустим ip адрес принтера 192.168.10.26):
cscript «C:\Windows\System32\Printing_Admin_Scripts\en-US\Prnport.vbs» -a -r IP_192.168.10.26 -h 192.168.10.26 -o raw -n 9100
-r IP_192.168.10.26 – имя сетевого порта;

-h 192.168.10.26 – 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.10.26»
После окончания работы скрипта в системе появится новый принтер с именем HP5525

Отправка на печать тестовой страницы

Чтобы отправить тестовую страницу на печать на созданном ранее принтере, выполните:
cscript «C:\Windows\System32\Printing_Admin_Scripts\en-US\prnqctl.vbs” -e -p «HP5525»

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

С помощью скрипта 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. Используйте команду:

script «C:\Windows\System32\Printing_Admin_Scripts\en-US\prncnfg.vbs” -t -p HP5525 -h «HP5525_Shared» +shared

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

script «C:\Windows\System32\Printing_Admin_Scripts\en-US\prncnfg.vbs” -t -p «HP5525» -shared

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

script «C:\Windows\System32\Printing_Admin_Scripts\en-US\prncnfg.vbs” -t -p HP5525 +published

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

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

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

Читайте также:  Linux папки с пробелами

cscript «C:\Windows\System32\Printing_Admin_Scripts\en-US\prnmngr.vbs» -ac -p “\\prnt01\hp2000”

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

Полный список принетров в системе можно вывести так:

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

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

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

PowerShell: управление принтерами и драйверами печати в Windows 10 / Server 2016

В предыдущей статье мы рассмотрели олдскульные vbs скрипты, которые можно было использовать для управления принтерами и печатью во всех версиях Windows, начиная с Windows XP. Сегодня же мы рассмотрим типовые команды для создания, удаления принтеров, портов и драйверов печати в Windows при помощи PowerShell. Рассмотренные методы управления принтерами можно использовать в современных ОС — Windows 10, 8.1 и Windows Server 2012 R2 / 2016 / 2019.

Модуль PowerShell: PrintManagement

Вместе с выходом Windows 8.1 и Windows Server 2012 R2 Microsoft выпустила новую версию PowerShell 4.0 (входит в состав Windows Management Framework 4.0), в котором был существенно расширен список командлетов по управлению сервером печати на базе Windows. Полный список командлетов, по управлению принтерами, драйверами и очередями печати, доступных в модуле PrintManagement на Windows 10 (PoSh v5) можно вывести командой:
Get-Command –Module PrintManagement

В модуле PrintManagement доступны 22 командлета PowerShell для управления принтерами, драйверами, портами печати и очередями:

  • Add-Printer – добавить (установить) новый принтер;
  • Add-PrinterDriver — установить новый драйвер печати;
  • Add-PrinterPort – создать порт печати;
  • Get-PrintConfiguration – вывести настройки печати принтера;
  • Get-Printer – вывести список принтеров, установленных на компьютере;
  • Get-PrinterDriver – вывести список установленных драйверов печати;
  • Get-PrinterPort — вывести список портов печати;
  • Get-PrinterProperty – показать свойства принтера;
  • Get-PrintJob – получить список заданий печати принтера;
  • Read-PrinterNfcTag – получить информацию о принтере из NFC метки;
  • Remove-Printer — удалить принтер;
  • Remove-PrinterDriver — удалить драйвер принтера;
  • Remove-PrinterPort — удалить порт принтера;
  • Remove-PrintJob – удалить задание печати на принтере;
  • Rename-Printer — переименовать принтер;
  • Restart-PrintJob — перезапустить задание печати;
  • Resume-PrintJob — запустить приостановленное задание
  • Set-PrintConfiguration – настройка конфигурации принтера;
  • Set-Printer – обновить конфигурацию принтера;
  • Set-PrinterProperty — изменить свойства принтера;
  • Suspend-PrintJob – приостановить выполнение задания печати;
  • Write-PrinterNfcTag – записать информацию в метку NFC.

Подробную информацию о синтаксисе конкретной команды можно получить так:

Примеры использования команд:

Рассмотрим несколько примеров типовых сценариев управления принтерами в Windows 10 из PowerShell.

Установка драйвера печати в хранилище драйверов

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

Уставим в системе новый драйвер печати, например, HP Universal Printing PCL 6. Согласно документации, команда PowerShell для добавления драйвера должна быть такой:

Читайте также:  Windows virtual pc для windows 10 x32

Add-PrinterDriver -Name «HP Universal Printing PCL 6» -InfPath «C:\Distr\HP-pcl6-x64\hpcu118u.inf»

Однако при попытке установить драйвер подобным образом появляется ошибка:

Оказывается, драйвер из inf файла можно добавить только в том случае, если он уже находится в хранилище драйверов DriverStore (подробнее про хранилище можно почитать здесь). Получается, что с помощью команды Add-PrinterDriver установить драйвер, отсутствующий в хранилище драйверов системы нельзя. Для установки драйвера в DriverStore можно воспользоваться:

  • vbs скриптом из предыдущей статьи;
  • Утилитой pnputil.exe. Формат такой: pnputil.exe -i -a C:\Distr\HP-pcl6-x64\hpcu118u.inf (установить конкретный драйвер принтера) или pnputil.exe -i -a C:\Distr\HP-pcl6-x64\*.inf (установит все драйвера, найденные в inf файлах указанного каталога);
  • Командлетом Add-WindowsDriver, позволяющим интегрировать драйвера в оффлайн образ Windows.

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

Add-PrinterDriver -Name «HP Universal Printing PCL 6»

Установка нового принтера с помощью PowerShell

Создадим ip порт для печати на сетевом принтере (тут можно указать как IP адрес сетевого принтера, так и имя удаленного принт-сервера):

Add-PrinterPort -Name «IP_192.168.10.26» -PrinterHostAddress «192.168.10.26»
Перед добавлением порта вы можете проверить, существует ли он:

$portName = «IP_192.168.10.26»
$checkPortExists = Get-Printerport -Name $portname -ErrorAction SilentlyContinue
if (-not $checkPortExists) <
Add-PrinterPort -name $portName -PrinterHostAddress «192.168.10.26»
>

С помощью следующей команды мы создадим в системе новый принтер и опубликуем его (откроем к нему общий доступ):
Add-Printer -Name hp2050_Office1_Buh -DriverName «HP Deskjet 2050 J510 series Class Driver» -PortName IP_192.168.10.26 -Shared -ShareName «hp2050_1_BUh» –Published

Rename-Printer -Name «hp2050_Office1_Buh» -NewName » hp2050_Salary»

После выполнения указанных команд в системе появится новый принтер с общим доступом под именем hp2050_Office1_Buh.

Вывод списка принтеров на сервере печати с помощью PowerShell

Выведем полный список принтеров, установленных на данном компьютере:

Как вы видите, команда показывает имя принтера, тип (локальный или сетевой), драйвер, порт печати, открыт ли к принтеру общий доступ и опубликован ли принтер в AD.

Большинство командлетов модуля PrintManagement можно использовать для просмотра состояния и управления принетрами, драйверами и очередями печати на удаленных компьютерах. Имя удаленного компьютера или сервера указывается в качестве аргумента параметра ComputerName.

С помощью PowerShell вы можете получить информацию об установленных принтерах на удаленном компьютере (принт-сервере), для этого выполните команду:

Get-Printer -ComputerName msk-prnt1 | Format-List Name,DriverName

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

Get-Printer -ComputerName msk-prnt1 | where Shared -eq $true | fl Name

Подключение сетевого принтера из PowerShell

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

Add-Printer -ConnectionName \\msk-prnt1\HPCL3020

Windows 10 использует последний принтер, на который выполнялась печать в качестве принтера по умолчанию, если вы хотите использовать фиксированный принтер по-умолчанию, выполните команду:

Set-ItemProperty -Path «HKCU:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows» -Name «LegacyDefaultPrinterMode» -Value 1 –Force

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

$wsnObj = New-Object -COM WScript.Network
$wsnObj.SetDefaultPrinter(%PrinterName%)

Удаление принтера с помощью PowerShell

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

Remove-Printer -Name «hp2050_Office1_Buh»

Вы можете удалить конкретный драйвер при помощи командлета Remove-PrinterDriver:

Remove-PrinterDriver -Name «HP Universal Printing PCL 6»

Оцените статью