Поделиться через


Работа с принтерами в Windows

Этот пример применяется только к платформам Windows.

PowerShell можно использовать для управления принтерами с помощью WMI и COM-объекта WScript.Network из WSH.

Перечисление подключений принтера

Самый простой способ вывести список принтеров, установленных на компьютере, — использовать класс Win32_Printer инструментария WMI.

Get-CimInstance -Class Win32_Printer

Вы также можете перечислить принтеры с помощью COM-объекта WScript.Network , который обычно используется в скриптах WSH:

(New-Object -ComObject WScript.Network).EnumPrinterConnections()

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

Добавление сетевого принтера

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

(New-Object -ComObject WScript.Network).AddWindowsPrinterConnection("\\Printserver01\Xerox5")

Настройка принтера по умолчанию

Чтобы задать принтер по умолчанию с помощью инструментария WMI, найдите принтер в коллекции Win32_Printer, а затем вызовите метод SetDefaultPrinter.

$printer = Get-CimInstance -Class Win32_Printer -Filter "Name='HP LaserJet 5Si'"
Invoke-CimMethod -InputObject $printer -MethodName SetDefaultPrinter

WScript.Network немного проще в использовании, так как содержит метод SetDefaultPrinter, который принимает в качестве аргумента только имя принтера:

(New-Object -ComObject WScript.Network).SetDefaultPrinter('HP LaserJet 5Si')

Удаление подключения принтера

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

(New-Object -ComObject WScript.Network).RemovePrinterConnection("\\Printserver01\Xerox5")