- Управление принтерами из командной строки в Windows 10 / 8.1
- Готовые VBS скрипты для управления принтерами в Windows
- Установка драйвера принтера из командной строки
- Установка нового принтера из командной строки
- Управление принтером по-умолчанию
- Создаем TCP/IP порт для сетевого принтера
- Отправка на печать тестовой страницы
- Управление очередями печати из командной строки
- Включить общий доступ к принтеру из командной строки
- Как подключить сетевой принтер из командной строки
- Удаление принтера и драйвера печати из командной строки
- PowerShell: управление принтерами и драйверами печати в Windows 10 / Server 2016
- Модуль PowerShell: PrintManagement
- Установка драйвера печати в хранилище драйверов
- Установка нового принтера с помощью PowerShell
- Вывод списка принтеров на сервере печати с помощью PowerShell
- Подключение сетевого принтера из PowerShell
- Удаление принтера с помощью 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.
- Вместо каталога en-US может быть другой каталог, соответствующий языку установленной системы. Для русской версии Windows это будет каталог ru-RU (полный путь C:\Windows\System32\Printing_Admin_Scripts\ru-RU);
- В 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).
Установка нового принтера из командной строки
С помощью следующей команды можно установить новый принтер с именем 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».
Как подключить сетевой принтер из командной строки
Чтобы подключить сетевой принтер, подключенный к другому компьютеру, используйте
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 для добавления драйвера должна быть такой:
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»