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

Встроенный модуль PrintManagement PowerShell включает 22 команды для управления принтерами, драйверами, портами печати и очередями:
Get-Command –Module PrintManagement
powershell модуль PrintManagement

  • 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-метку.

Добавление драйверов принтера в DriverStore

Модуль PrintManagement имеет функцию Add-PrinterDriver , которая позволяет установить драйвер принтера из INF-файла. На самом деле эта команда позволяет только добавлять драйверы в автономный образ Windows (как и команда Add-WindowsDriver команда, которая позволяет интегрировать драйверы в автономные образы Windows).

Чтобы установить драйвер принтера из INF-файла, используйте команду pnputil консольная команда. Загрузите драйверы для вашей модели принтера с сайта производителя и распакуйте их в локальную папку. Затем установите драйвер:

pnputil.exe -i -a "C:\drivers\KYOCERA\KyoClassicUniversalPCL6\OEMsetup.inf"

pnputil: установка драйвера принтера из inf-файла

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

Add-PrinterDriver -Name "Kyocera Classic Universaldriver PCL6"

Скопируйте точное имя драйвера принтера из INF-файла.узнайте имя драйвера принтера из inf-файла

Список доступных драйверов печати:

Get-PrinterDriver

Get-PrinterDriver

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

Перед созданием нового принтера необходимо добавить порт принтера. Это может быть локальный порт или сетевой порт (для отправки заданий печати на удаленный принтер по сети). Например:
Add-PrinterPort -Name "LocalPort:" -ErrorAction -Verbose

Или укажите IP-адрес удаленного принтера или имя сервера печати в качестве PrinterHostAddress.

Add-PrinterPort -Name "IP_192.168.10.26" -PrinterHostAddress "192.168.10.26"

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

Add-Printer -Name "Ricoh IM 2702" -DriverName "Kyocera Classic Universaldriver PCL6" -PortName USB001 -Verbose

Команда Add-Printer: создание нового принтера с помощью powershell

Убедитесь, что новый принтер появился в приложении «Панель управления и настройки».

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

Rename-Printer -Name "Ricoh IM 2702" -NewName "Ricoh_2702"

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

Set-Printer -Name "Ricoh IM 2702" -Shared $True -ShareName "Ricoh_2702"

Отключите общий доступ к принтеру:

Set-Printer -Name "Ricoh IM 2702" -Shared $False

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

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

Get-Printer

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

Get-Printer: список локальных принтеров с помощью powershell

Большинство команд модуля PrintManagement можно использовать для управления принтерами на удаленных компьютерах (с помощью команды -ComputerName параметра).

Просмотр списка принтеров, установленных на удаленном компьютере (сервере печати):

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

Список общих принтеров на компьютере:

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

Получение принтеров с поддержкой двусторонней печати:

Get-Printer | ForEach-Object { Get-PrintConfiguration -PrinterName $_.Name } | Where-Object { $_.DuplexingMode -ne "OneSided" }

powershell list printers with duplex twosided support

Перечислите все цветные принтеры на компьютере:

Get-Printer | ForEach-Object { Get-PrintConfiguration -PrinterName $_.Name } | where {$_.Color -eq $True}

Включить режим цветной печати для принтера:

Get-Printer 'HP Color LaserJet 150nw' | Set-PrintConfiguration -Color $true

Подключение общего сетевого принтера с помощью PowerShell

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

Add-Printer -ConnectionName \\rome-prnt1\HP3027

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

Get-Printer | ?{$_.type -eq 'Connection'}

Удалить определенное подключение сетевого принтера:

Get-Printer -name \\rome-prnt1\HP3027| Remove-Printer -force

Удалите все подключенные сетевые принтеры с компьютера:

Get-Printer | ?{$_.type -eq 'Connection'} | Remove-Printer

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

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

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

Затем с помощью следующих команд установите фиксированный принтер по умолчанию:

$Printer = Get-CimInstance -Class Win32_Printer -Filter "Name="Ricoh IM 2702""
Invoke-CimMethod -InputObject $Printer -MethodName SetDefaultPrinter

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

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

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

Remove-Printer -Name "HP LaserJet M1530"

После этого можно удалить драйвер принтера с сервера печати:

Remove-PrinterDriver -Name "HP Universal Printing PCL 6"

В доменной среде для установки принтеров можно использовать GPO.

Вот некоторые другие полезные команды для системного администратора для управления типичными задачами печати.

Отправить тестовую страницу на печать:

Invoke-CimMethod -MethodName printtestpage -InputObject (Get-CimInstance win32_printer | Where-Object Name -eq "HP LaserJet M1530")

Очистите очередь принтера:

Get-Printer -Name "HP LaserJet M1530" | Get-PrintJob | Remove-PrintJob